Ir al contenido
← All validator rules
InfoBPMN DI consistency

missingShapeForFlowNode

Flow node has no corresponding <BPMNShape> — diagram cannot render it.

Why it matters

A BPMN 2.0 document carries two parallel structures: the semantic model (`<process>`, `<task>`, `<sequenceFlow>` …) and the diagram interchange (`<bpmndi:BPMNShape>`, `<bpmndi:BPMNEdge>`). Modeling tools render the diagram view from the DI layer — a node without a corresponding `<BPMNShape>` is invisible in the editor even though it exists in the underlying logic. Most users discover the discrepancy only when a collaborator opens the file and reports "the diagram is missing a task". The validator surfaces it before the file ships.

What triggers it

For every flow node in every process scope (tasks, gateways, events, subprocesses), the validator looks for a `<bpmndi:BPMNShape bpmnElement="<node-id>">`. When the lookup misses, the rule fires at info severity — info because the file is semantically valid; the diagram is simply incomplete. Engines ignore the DI layer at runtime, so the issue is purely a tooling/UX problem.

How to fix

Open the file in a BPMN modeling tool (Camunda Modeler, bpmn.io, Lucidflow). The missing nodes appear as "orphan" semantic elements in the navigator pane; double-clicking them auto-creates the missing shape at a default position. For hand-edited XML, copy an existing `<bpmndi:BPMNShape>` block, change `id` and `bpmnElement` to the missing node id, and update the `<dc:Bounds>` x/y to a sensible position. The validator does not enforce shape placement — only existence.

Examples

TriggerTask `t2` exists semantically but has no diagram shape.
<process id="P">
  <task id="t1" name="First" />
  <task id="t2" name="Second" />
</process>
<bpmndi:BPMNDiagram id="d">
  <bpmndi:BPMNPlane id="plane" bpmnElement="P">
    <bpmndi:BPMNShape id="t1_di" bpmnElement="t1">
      <dc:Bounds x="100" y="100" width="100" height="80" />
    </bpmndi:BPMNShape>
  </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
FixAdd the missing BPMNShape for t2.
<bpmndi:BPMNDiagram id="d">
  <bpmndi:BPMNPlane id="plane" bpmnElement="P">
    <bpmndi:BPMNShape id="t1_di" bpmnElement="t1">
      <dc:Bounds x="100" y="100" width="100" height="80" />
    </bpmndi:BPMNShape>
    <bpmndi:BPMNShape id="t2_di" bpmnElement="t2">
      <dc:Bounds x="240" y="100" width="100" height="80" />
    </bpmndi:BPMNShape>
  </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>

In-depth documentation. • Browse all 113 rules