Events

Error Event Sub-Process Start (interrupting)

Starts an Event Sub-Process that handles an error raised anywhere in the surrounding scope; always interrupting — the normal flow is aborted. Single thin dashed?? No: drawn with a thin border circle containing the error icon, inside the event sub-process.

Placing an Error Start Event inside an Event Sub-Process turns that sub-process into the scope's error handler: whenever a matching error is thrown in the surrounding process, the handler starts and the normal flow of that scope is interrupted (error handling is always interrupting — a scope cannot continue as if nothing happened).

This centralizes error handling that would otherwise require boundary events on many individual activities.

When to use and avoid

When to use

  • To handle the same error uniformly wherever it occurs in the scope.

  • To keep the happy path clean, moving error handling off to the side.

  • For end-of-scope cleanup that must run when processing fails.

When NOT to use

  • When the error concerns one specific activity — an Error Boundary Event on that activity is more precise.

  • For recoverable situations where the normal flow should continue — errors always interrupt; consider Escalation for non-interrupting severity.

  • As a substitute for fixing systematically failing steps.

Business example

Centralized validation-error handler

Diagrama BPMN: Centralized validation-error handler
Centralized validation-error handler

Open this example in the HEFLO process editor and explore the diagram from the inside.

Open in the HEFLO editor →

Step by step

  1. The main flow processes an order normally.
  2. If any step throws a validation error, the Error Start Event (highlighted) of the event sub-process fires.
  3. The handler notifies the customer; the interrupted main flow does not resume.

The dotted-border sub-process is the event sub-process; it has no incoming or outgoing sequence flows.

Differences

Error Event Sub-Process vs Error Boundary Event

The boundary catches errors from *one* activity; the event sub-process catches errors from the *whole scope* it lives in. Prefer the boundary for step-specific recovery, the event sub-process for scope-wide policies.

FAQ

Can an error event sub-process be non-interrupting?

No. Error handling always interrupts the scope — the spec forbids a non-interrupting error start. For non-interrupting severity signalling, use Escalation.

Where does the flow go after the handler finishes?

Nowhere in the interrupted scope — it ended with the error. The handler's end completes the scope (typically followed by the parent reacting).

Related elements