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

  1. Add a default sequence flow to the exclusive gateway in the BPMN model
  2. Fix condition expressions so at least one evaluates true for every runtime variable combination
  3. 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)