flowable/flowable-engine · warning
Error parsing input expression
Error message
Error parsing input expression
What it means
Warning logged by InputExpressionParser.parseChildElement when an exception occurs while reading the <inputExpression> child of a DMN <input> clause (typeRef, text, etc.). The parser swallows the exception and the clause is left with a null inputExpression, meaning the decision table column has no expression and will not evaluate correctly, while the model still parses.
Source
Thrown at modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/InputExpressionParser.java:54
}
LiteralExpression inputExpression = new LiteralExpression();
inputExpression.setId(xtr.getAttributeValue(null, ATTRIBUTE_ID));
inputExpression.setTypeRef(xtr.getAttributeValue(null, ATTRIBUTE_TYPE_REF));
boolean readyWithInputExpression = false;
try {
while (!readyWithInputExpression && xtr.hasNext()) {
xtr.next();
if (xtr.isStartElement() && ELEMENT_TEXT.equalsIgnoreCase(xtr.getLocalName())) {
inputExpression.setText(xtr.getElementText());
} else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {
readyWithInputExpression = true;
}
}
} catch (Exception e) {
LOGGER.warn("Error parsing input expression", e);
}
clause.setInputExpression(inputExpression);
}
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- Read the attached stack trace to pinpoint the XML error location.
- Validate the .dmn against the DMN XSD and fix the malformed inputExpression block.
- Re-export the decision table from the DMN modeling tool.
- Consider strict parsing (rethrow) so broken models fail at deployment time.
Example fix
// before: nested/wrong element <input> <inputExpression typeRef="string"><text>...</invalid></inputExpression> </input> // after <input> <inputExpression typeRef="string"><text>invoiceType</text></inputExpression> </input>
Defensive patterns
Strategy: validation
Validate before calling
// assert each input clause carries an inputExpression after load DmnDecision d = dmnRepository.createDecisionQuery().decisionKey(key).singleResult(); // or statically: every <dmn:input> must contain exactly one <dmn:inputExpression>
Prevention
- XSD-validate DMN files before deployment
- After model conversion, verify clause.getInputExpression() is non-null for every input
- Avoid vendor-specific exporters that nest inputExpression differently; use DMN 1.1-compatible output
- Treat this warning as a blocker, not noise
When it happens
Trigger: parseChildElements dispatches to InputExpressionParser; the XMLStreamReader throws (malformed XML, unexpected element nesting, premature EOF) while scanning until the matching </inputExpression> end element.
Common situations: Malformed <input> blocks in hand-edited .dmn files; vendor-exported DMN with unexpected nesting inside inputExpression; encoding/truncation problems in the resource file.
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 expression
- Error determine output clause for position: {}
- Error parsing input entry
- Error parsing input values
- Error parsing output entry
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/7ef5093a36329b30.
Report an issue: GitHub.