flowable/flowable-engine · error · FlowableException
No outgoing sequence flow of the exclusive gateway
Error message
No outgoing sequence flow of the exclusive gateway '${exclusiveGateway.getId()}' could be selected for continuing ${execution} What it means
Thrown in ExclusiveGatewayActivityBehavior.leave when none of the gateway's outgoing sequence flow conditions evaluated to true and no default flow was configured, so the execution has no path to continue past the gateway.
Solutions
- Add a default sequence flow to the exclusive gateway in the BPMN model
- Fix condition expressions so at least one evaluates true for every runtime variable combination
- Log/inspect execution variables at the gateway to see why all conditions failed
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/ExclusiveGatewayActivityBehavior.java:113 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/49938a789064d490.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/ExclusiveGatewayActivityBehavior.java:113
}
// Already store it, if we would need it later. Saves one for loop.
if (defaultSequenceFlowId != null && defaultSequenceFlowId.equals(sequenceFlow.getId())) {
defaultSequenceFlow = sequenceFlow;
}
}
// Leave the gateway
if (outgoingSequenceFlow != null) {
execution.setCurrentFlowElement(outgoingSequenceFlow);
} else {
if (defaultSequenceFlow != null) {
execution.setCurrentFlowElement(defaultSequenceFlow);
} else {
// No sequence flow could be found, not even a default one
throw new FlowableException("No outgoing sequence flow of the exclusive gateway '" + exclusiveGateway.getId() + "' could be selected for continuing " + execution);
}
}
super.leave(execution);
}
}
View on GitHub (pinned to d6d39ce1c6)