flowable/flowable-engine · error · XMLException
Error processing CMMN document
Error message
Error processing CMMN document
What it means
CmmnDiExtensionXmlConverter processes the DI (diagram interchange) extension of a CMMN document. Any exception during that processing is logged and rethrown as XMLException 'Error processing CMMN document', so the actual failure is always in the cause.
Source
Thrown at modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/CmmnDiExtensionXmlConverter.java:77
graphicInfo.setY(Double.valueOf(xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_DI_Y)));
if ("source".equals(type)) {
edgeInfo.setSourceDockerInfo(graphicInfo);
} else {
edgeInfo.setTargetDockerInfo(graphicInfo);
}
}
}
} else if (xtr.isEndElement()) {
if (CmmnXmlConstants.ELEMENT_DI_EXTENSION.equalsIgnoreCase(xtr.getLocalName())) {
readyWithChildElements = true;
}
}
}
} catch (Exception ex) {
LOGGER.error("Error processing CMMN document", ex);
throw new XMLException("Error processing CMMN document", ex);
}
return null;
}
}View on GitHub (pinned to d6d39ce1c6)
Solutions
- Inspect the cause exception logged with 'Error processing CMMN document' for the exact problem
- Correct or remove the DI/diagram section from the CMMN XML and re-export diagrams from the modeler
- Validate the document against the CMMN 1.1 XSD
- Re-generate the file with a supported CMMN exporter version
Example fix
// before (XML) <CMMNShape cmmnElementRef="missingId" .../> // after <CMMNShape cmmnElementRef="planItem_1" .../> <!-- ref an existing element -->
Defensive patterns
Strategy: validation
Validate before calling
// verify DI shape refs point to existing elements before conversion
Set<String> ids = collectAllElementIds(cmmnDoc);
for (CMMNShape s : diShapes) {
if (!ids.contains(s.getCmmnElementRef())) throw new IllegalArgumentException("DI shape refs unknown element " + s.getCmmnElementRef());
} Try / catch
try { converter.convertToCmmnModel(provider); } catch (XMLException e) { log.error("CMMN DI processing failed", e.getCause()); throw new DeploymentException("Invalid CMMN DI section", e); } Prevention
- Always inspect the cause of XMLException 'Error processing CMMN document'
- Keep the DI section consistent with model element IDs
- Re-export diagrams from the modeler instead of editing DI by hand
- Validate against the CMMN 1.1 XSD
When it happens
Trigger: Converting a CMMN file whose DI extension section (CMMNDI, shapes/bounds/edges) contains malformed data or references, causing any runtime exception inside the converter's processing loop.
Common situations: DI coordinates referencing non-existent shape IDs; broken or hand-edited diagram sections; exporter bugs writing inconsistent DI data; corrupted files.
Understand the failure class
Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.
Related errors
- There can only be one reactivation listener on a case model,
- ${this.getClass()} error: element is not a CaseElement : ${b
- Error converting case reference expression
- Error while reading the CMMN 1.1 XML
- Error converting condition
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/826dcfe72c705ccb.
Report an issue: GitHub.