flowable/flowable-engine · warning
Error parsing input entry
Error message
Error parsing input entry
What it means
Warning logged by InputEntryParser.parseChildElement when an exception is thrown while streaming through the <inputEntry> element of a DMN rule (typically XMLStreamException from malformed XML or unexpected EOF). Flowable logs and continues; the resulting RuleInputClauseContainer gets a null (or partial) inputEntry, so that rule cell evaluates as missing at decision time rather than failing deployment.
Source
Thrown at modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/InputEntryParser.java:85
} else if (xtr.isStartElement() && ELEMENT_EXTENSIONS.equals(xtr.getLocalName())) {
while (xtr.hasNext()) {
xtr.next();
if (xtr.isStartElement()) {
DmnExtensionElement extensionElement = DmnXMLUtil.parseExtensionElement(xtr);
migrateExtensionElement(extensionElement, inputClause);
inputEntry.addExtensionElement(extensionElement);
} else if (xtr.isEndElement()) {
if (ELEMENT_EXTENSIONS.equals(xtr.getLocalName())) {
break;
}
}
}
} else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {
readyWithInputEntry = true;
}
}
} catch (Exception e) {
LOGGER.warn("Error parsing input entry", e);
}
RuleInputClauseContainer ruleInputClauseContainer = new RuleInputClauseContainer();
ruleInputClauseContainer.setInputClause(inputClause);
ruleInputClauseContainer.setInputEntry(inputEntry);
rule.addInputEntry(ruleInputClauseContainer);
}
protected void migrateExtensionElement(DmnExtensionElement extensionElement, InputClause inputClause) {
if (extensionElement == null || extensionElement.getElementText() == null || extensionElement.getName() == null || inputClause == null
|| inputClause.getInputExpression() == null) {
return;
}
if (!"operator".equals(extensionElement.getName())) {
return;
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- Inspect the attached stack trace for the XMLStreamException and its line/column to locate the bad element.
- Escape XML special characters in expressions: use < > & or CDATA instead of raw < and >.
- Validate the .dmn file against the DMN XSD before deployment.
- Re-export the table from the DMN editor to produce well-formed XML.
Example fix
<!-- before --> <inputEntry><text>amount > 100</text></inputEntry> <!-- after --> <inputEntry><text>amount > 100</text></inputEntry>
Defensive patterns
Strategy: validation
Validate before calling
// ensure expressions are XML-safe before authoring/serializing
String safe = rawExpression
.replace("<", "<").replace(">", ">").replace("&", "&"); Prevention
- Escape <, >, & in FEEL expressions or use CDATA sections
- XSD-validate .dmn resources in CI
- Reject/fix any deployment whose logs show 'Error parsing input entry'
- Prefer the DMN modeler over manual XML edits
When it happens
Trigger: While iterating XMLStreamReader events until the </inputEntry> end element, xtr.next()/getLocalName() etc. throw because the XML is malformed, truncated, or the stream ends unexpectedly.
Common situations: Invalid characters or unescaped operators (e.g. raw '<', '>') inside input entry expressions in .dmn XML; truncated files; DMN XML produced by incompatible exporter versions.
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 output 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/0eba8ba4394f7a6c.
Report an issue: GitHub.