Of course usually you don't want the server to crash and normally you do everything to have it in a stable condition. Sometimes you may want to force a crash for testing purposes, e.g. your server monitoring or maybe you just want a sample NSD file.
This post shows how to crash a Domino reliably with a single button click 
Create a new blank NSF. Enable the Extension Library feature in the XSP properties since the code uses the ExtLibUtil class.
xsp.library.depends=com.ibm.xsp.extlib.library
Create a new Java code resource com.yourorg.DQLSearch with this code:
package com.yourorg;
import java.io.Serializable;
import com.ibm.xsp.extlib.util.ExtLibUtil;
import lotus.domino.Database;
import lotus.domino.DominoQuery;
import lotus.domino.Session;
public class DQLSearch implements Serializable {
private static final long serialVersionUID = 1L;
public void execute() {
try {
// the query is missing a logical operator between the 2 terms like OR or AND
String malformed = "form in ('gen_email', 'crm_letter') (CompanyName contains ('grouplink ITS GmbH') OR obj_company contains ('94C83D99287E25F3C1258D10004482C7'))";
Session session = ExtLibUtil.getCurrentSession();
Database db = ExtLibUtil.getCurrentDatabase();
DominoQuery dq = db.createDominoQuery();
dq.execute(malformed); // crash
} catch (Exception e) {
e.printStackTrace();
}
}
}
Edit the faces-config.xml file to define a Java bean.
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<managed-bean>
<managed-bean-name>dql</managed-bean-name>
<managed-bean-class>com.yourorg.DQLSearch</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
</managed-bean>
<!--AUTOGEN-START-BUILDER: Automatically generated by HCL Domino Designer. Do not modify.-->
<!--AUTOGEN-END-BUILDER: End of automatically generated section-->
</faces-config>
Create a new Xpage and place a button.
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:button
value="Execute malformed DQL"
id="button1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:dql.execute();}]]></xp:this.action>
</xp:eventHandler></xp:button>
</xp:view>
Set the ACL as you like and open the page in a browser. Hit the button and watch the server crash immediately.
Stack base = 0x90dfefcc, Stack size = 25664 bytes
Fatal Error signal = 0x0000000b PID/TID = 1686123/%bd
4/17/2026 12:02:00 Running NSD
NSD is in progress .................
This doesn't happen with all malformed DQL queries. It seems it only happens when the second term is also using further logic operation. When you omit the last term OR obj_company contains ('94C83D99287E25F3C1258D10004482C7') you only get an exception as expected that the query was malformed.
I filed a case and will keep you updated about the result.