# BPMN Gateway Mismatch Antipatterns

**In short:** A gateway mismatch means a BPMN split and its join have incompatible types. The result is a deadlock, where the process cannot finish, or a lack of synchronization, where an end event is reached more than once.

## Explanation

A gateway is a diamond in a BPMN model that splits the flow into paths or joins paths back together. A mismatch means the join type does not fit the split before it.

**Deadlock.** A parallel (AND) join waits until every incoming path has arrived. Suppose the split before it started only some of those paths. The join then waits forever, and the process cannot complete.

**Lack of synchronization.** Sound BPMN models complete properly. That means no end event is reached more than once in a run. A model that breaks this rule has a lack of synchronization.

**Typical fix.** An inclusive (OR) split may start a varying number of paths. Join those paths with an inclusive (OR) join. This join waits only for the paths that were actually activated. A parallel join in that place causes the deadlock.

**Finding these errors.** You do not have to spot them by eye. BPMN Analyzer is a model checker. It explores the possible states of a model. It reports deadlocks, livelocks, starvation, dead activities, and lack of synchronization. It also suggests quick fixes for the most common control-flow errors, including those that lead to deadlock and lack of synchronization.

For the wider ideas, see the articles Soundness of Process Models, Deadlock in Process Models, and Lack of Synchronization.

## Example

A support process receives a ticket. An inclusive split starts "Notify customer" and "Update billing", each only when it applies. Often only one applies. A parallel join then waits for both, so the ticket never closes. The fix is to replace the parallel join with an inclusive join. It waits only for the tasks that actually started.

## Trade-offs

The facts here cover only the inclusive-split case and the tool support. Automated checks catch common control-flow errors, but this article does not claim they catch every mismatch.

BPMN diagram: [Antipattern: an inclusive split joined by a parallel gateway can deadlock. Replace the join with an inclusive gateway.](https://arc.fuet.ch/diagrams/concepts/modeling-bpmn/antipatterns-for-process-flows/diagram-1.bpmn)

## Checks

- Every inclusive (OR) split is closed by an inclusive join, not by a parallel join.
- The model is checked for deadlocks and lack of synchronization, for example with a BPMN model checker.
- Each process run reaches any end event at most once (proper completion).

## Related

- [Deadlock in Process Models](https://arc.fuet.ch/concepts/modeling-bpmn/deadlock-in-process-models.md)
- [Lack of Synchronization](https://arc.fuet.ch/concepts/modeling-bpmn/lack-of-synchronization-in-process-models.md)
- [Soundness of Process Models](https://arc.fuet.ch/concepts/modeling-bpmn/soundness-of-process-models.md)
- [BPMN Gateway](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-gateway-semantics.md)
- [Errors in Process Models](https://arc.fuet.ch/concepts/modeling-bpmn/errors-in-process-models.md)
- [BPMN 2.0 Model Quality](https://arc.fuet.ch/concepts/modeling-bpmn/bpmn-2-0-model-quality.md)

## Sources

- [Automated Discovery of Process Models with True Concurrency and Inclusive Choices](https://arxiv.org/html/2105.06016v1) — arxiv.org, accessed 2026-11-09
- [BPMN Deadlock – Tyner Blain](https://tynerblain.com/2006/09/20/bpmn-deadlock/) — tynerblain.com, accessed 2026-11-09
- [BPMN Analyzer 2.0: Instantaneous, Comprehensible, and Fixable Control Flow Analysis for Realistic BPMN Models](https://arxiv.org/html/2408.06028) — arxiv.org, accessed 2026-11-09
