flowable/flowable-engine · error · FlowableException
Error parsing XML
Error message
Error parsing XML
What it means
DmnParse.execute parses a DMN XML document into the engine's model; any exception raised that is neither FlowableException nor DmnXMLException is wrapped as FlowableException('Error parsing XML', e). It signals that the DMN XML content could not be parsed into a valid model.
Solutions
- Open the wrapped cause (e.getCause()) to see the underlying XML parser error and line number
- Validate the .dmn file against the DMN 1.1 XSD before deploying
- Confirm the file is actually a DMN XML document with the correct namespace
- Re-export/repair the file from the DMN modeling tool and redeploy
Example fix
// before
catch (Exception e) { /* 'Error parsing XML' with hidden cause */ }
// after (debug approach)
try { parse.execute(); } catch (FlowableException e) { e.printStackTrace(); /* inspect cause */ } Defensive patterns
Strategy: try-catch
Validate before calling
// validate XML before handing to the parser DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(path)); // throws SAXParseException on malformed XML
Try / catch
try { parse.execute(); } catch (FlowableException e) { Throwable cause = e.getCause(); /* inspect cause for exact XML location */ } Prevention
- Validate .dmn files against the DMN XSD before deployment
- Confirm correct DMN namespace in the XML root element
- Re-export files from the modeling tool after edits
When it happens
Trigger: Calling DmnParse.execute (typically via createDmnParseFromResource) with malformed or non-DMN XML, an unreadable input stream, or a parser configuration failure.
Common situations: Corrupt or truncated .dmn file; file is valid XML but wrong schema/namespace (e.g. non-DMN XML deployed as DMN); XML features/doctype handling differences after upgrading the XML parser/JDK; encoding mismatch causing parse errors.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- e.getMessage() (dynamic message from wrapped exception)
- Decision key is required.
- decision table does not contain a hit policy
- deploymentId is null
- Error processing DMN document
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/95082b7e66a56c75.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/parser/DmnParse.java:119
for (Decision decision : dmnDefinition.getDecisions()) {
DecisionEntity decisionEntity = CommandContextUtil.getDmnEngineConfiguration().getDecisionDataManager().create();
decisionEntity.setKey(decision.getId());
decisionEntity.setName(decision.getName());
decisionEntity.setResourceName(name);
decisionEntity.setDeploymentId(deployment.getId());
decisionEntity.setDescription(decision.getDescription());
decisionEntity.setDecisionType(DecisionTypes.DECISION_TABLE);
decisions.add(decisionEntity);
}
}
}
} catch (Exception e) {
if (e instanceof FlowableException) {
throw (FlowableException) e;
} else if (e instanceof DmnXMLException) {
throw (DmnXMLException) e;
} else {
throw new FlowableException("Error parsing XML", e);
}
}
return this;
}
public DmnParse name(String name) {
this.name = name;
return this;
}
public DmnParse sourceInputStream(InputStream inputStream) {
if (name == null) {
name("inputStream");
}
setStreamSource(new InputStreamSource(inputStream));
return this;
}View on GitHub (pinned to d6d39ce1c6)