A BpmnError thrown from a connector script is treated as a script runtime exception rather than treated as a process execution construct.
Create a service task using a connector utilising script code to populate a process variable.
Add a boundary error event to the service task.
Throw a new BpmnError from the script code.
The engine treats the error as a script runtime exception.
See forum reference below for a link to the potential culprit.