flowable/flowable-engine · warning
Error parsing output entry
Error message
Error parsing output entry
What it means
Warning logged by OutputEntryParser.parseChildElement when an exception is thrown while parsing a rule's <outputEntry> element from the DMN XML stream. Like the other child parsers, it logs and continues, leaving the entry null/partial so the rule cell is effectively empty in the deployed model instead of the deployment failing.
Source
Thrown at modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/OutputEntryParser.java:57
return;
}
LiteralExpression outputEntry = new LiteralExpression();
outputEntry.setId(xtr.getAttributeValue(null, ATTRIBUTE_ID));
boolean readyWithOutputEntry = false;
try {
while (!readyWithOutputEntry && xtr.hasNext()) {
xtr.next();
if (xtr.isStartElement() && ELEMENT_TEXT.equalsIgnoreCase(xtr.getLocalName())) {
outputEntry.setText(xtr.getElementText());
} else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {
readyWithOutputEntry = true;
}
}
} catch (Exception e) {
LOGGER.warn("Error parsing output entry", e);
}
// determine corresponding output clause based on position
OutputClause outputClause = null;
DecisionTable decisionTable = (DecisionTable) decision.getExpression();
if (decisionTable.getOutputs() != null) {
if (decisionTable.getOutputs().get(rule.getOutputEntries().size()) != null) {
outputClause = decisionTable.getOutputs().get(rule.getOutputEntries().size());
}
}
if (outputClause == null) {
LOGGER.warn("Error determine output clause for position: {}", decisionTable.getOutputs());
}
RuleOutputClauseContainer outputContainer = new RuleOutputClauseContainer();
outputContainer.setOutputClause(outputClause);
outputContainer.setOutputEntry(outputEntry);View on GitHub (pinned to d6d39ce1c6)
Solutions
- Locate the error via the attached stack trace (line/column of the XMLStreamException).
- Escape XML special characters in the expression or wrap it in CDATA.
- Validate the .dmn against the DMN XSD.
- Re-export the decision table from the DMN editor.
Example fix
<!-- before --> <outputEntry><text>riskLevel = "high" && amount > 1000</text></outputEntry> <!-- after --> <outputEntry><text>riskLevel = "high" && amount > 1000</text></outputEntry>
Defensive patterns
Strategy: validation
Validate before calling
// XML-escape output expressions before writing .dmn
String safe = expr.replace("&", "&").replace("<", "<").replace(">", ">"); Prevention
- Escape XML special characters in all FEEL expressions
- XSD-validate DMN resources before deployment
- Investigate every 'Error parsing output entry' warning — the rule cell is silently dropped
- After conversion, assert output entries resolved to non-null containers
When it happens
Trigger: While consuming XMLStreamReader events until the </outputEntry> end element, the reader throws (malformed XML, unexpected EOF, invalid characters in the expression text).
Common situations: Unescaped <, >, & characters inside FEEL output expressions; truncated .dmn files; XML produced by a non-conformant exporter.
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
- Error parsing input entry
- Error parsing input expression
- Error determine output clause for position: {}
- Error parsing input expression
- Error parsing input values
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/294d530f78e060ff.
Report an issue: GitHub.