noStartEvent
Executable top-level <process> should have at least one start event.
Why it matters
An executable process needs a way to start. Without at least one `<startEvent>`, the engine has nowhere to spawn the first token — the model imports cleanly but cannot be triggered through any standard means (REST, BPMN message, timer cron). The result is a deployed but unreachable workflow, which is harder to spot than an import failure because the engine never complains.
What triggers it
The validator inspects every top-level `<process isExecutable="true">` and reports when it contains zero `<startEvent>` direct children. Non-executable processes (those with `isExecutable="false"` or unset) are silently skipped — they are commonly used as descriptive skeletons in collaboration diagrams and should not be flagged.
How to fix
Add a single `<startEvent id="start">` as a direct child of the `<process>`, then connect it to your first activity with a `<sequenceFlow>`. If the process is meant to be a documentation-only collaboration partner (no execution intended), set `isExecutable="false"` on the process and the warning disappears. For event sub-processes triggered by message or timer, place the start event inside the `<subProcess triggeredByEvent="true">` rather than at the process root.
Examples
In-depth documentation. • Browse all 113 rules