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

  1. Open the wrapped cause (e.getCause()) to see the underlying XML parser error and line number
  2. Validate the .dmn file against the DMN 1.1 XSD before deploying
  3. Confirm the file is actually a DMN XML document with the correct namespace
  4. 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

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


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)