Best Pattern for Dealing with BPMN Error events

I’m interested in how people prefer to model a scenario where multiple tasks could throw an error. Here are the patterns i tend to model.

Pattern One: Multiple Boundary Events

Pattern Two: Subprocess

Thoughts an opinions welcome!


I tend to follow pattern 2, from a Business User perspective - not from a Process Implementation perspective.

I often start at a very high-level, with a LOT of collapsed (non-executable) subprocesses, where the SMEs describe the various errors that can happen within that subprocess, and how they correct / handle it. Then when I’m digging into that subprocess (which often also starts off with collapsed subprocesses and some error responses, that can throw errors up to the next level), there are errors that also get caught on some of the tasks.

Hope that helps!

1 Like

Thanks @GotnOGuts
Do you tend to present models to folks who already know BPMN? I feel in Pattern One it’s might be easier to understand where the error is coming from for BPMN newbies or for people who don’t know the standard yet.

Mostly I deal with Business Users that don’t understand the language yet.

The process often goes along the lines of this (Each pool is the next step of the progression) …

Over time, as a modeler, if I find out that there’s a specific correction pattern for Error A, then that correction pattern would move inside “Do Group of Things”, and then Error A may (or may not) throw Error 1. … If that makes any sense…


After some iterations, I’ve used the 2 presented patterns and came to a conclusion that an event sub-process was easier to manage across my different diagrams:

Simple to add at a later time to an existing BPMN.

I do love using an event sub process. Although i tend to avoid it when building something for people who maybe aren’t fluent in BPMN yet.