{"record":{"id":"8b2f59fdf31f24b8","repo":"flowable/flowable-engine","slug":"error-while-executing-output-entry","errorCode":null,"errorMessage":"error while executing output entry","messagePattern":"error while executing output entry","errorType":"exception","errorClass":"FlowableDmnExpressionException","httpStatus":null,"severity":"error","filePath":"modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/ELExpressionExecutor.java","lineNumber":83,"sourceCode":"            throw new IllegalArgumentException(\"output clause is required\");\n        }\n        if (outputEntry == null) {\n            throw new IllegalArgumentException(\"output entry is required\");\n        }\n        if (executionContext == null) {\n            throw new IllegalArgumentException(\"execution context is required\");\n        }\n        \n        String parsedExpression = ELOutputEntryExpressionPreParser.parse(outputEntry.getText());\n        \n        Expression expression = expressionManager.createExpression(parsedExpression);\n        RuleExpressionOutput outputExpression = new RuleExpressionOutput(expression);\n\n        try {\n            return outputExpression.getValue(executionContext.getStackVariables());\n        } catch (Exception ex) {\n            LOGGER.warn(\"Error while executing output entry: {}\", outputEntry.getText(), ex);\n            throw new FlowableDmnExpressionException(\"error while executing output entry\", outputEntry.getText(), ex);\n        }\n    }\n}\n","sourceCodeStart":65,"sourceCodeEnd":87,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/ELExpressionExecutor.java#L65-L87","documentation":"Wrapped failure thrown by executeOutputExpression when outputExpression.getValue(stackVariables) throws any Exception. It is rethrown as FlowableDmnExpressionException carrying the original output entry text, with the root cause preserved — meaning the output expression failed to parse or evaluate (invalid syntax, unknown property/variable, type conversion failure).","triggerScenarios":"Any exception in RuleExpressionOutput.getValue: malformed output entry expression text, referencing variables/beans not on the stack, EL method invocation failures, or pre-parsed output entry expressions (e.g. with execution variable assignments) that the expression manager cannot resolve.","commonSituations":"Output entries like `${execution.setVariable('x', 5)}` failing because the referenced variable/bean is unavailable; typos in output expressions; custom EL providers rejecting the expression; version upgrades changing EL behavior.","solutions":["Inspect FlowableDmnExpressionException#getCause and the logged output entry text to find the root failure, then correct the expression in the DMN model.","Confirm all variables/beans referenced by the output expression exist in the evaluation context (e.g. execution variable was set by a prior output).","Validate output expression syntax and supported constructs; simplify to a literal or supported EL expression.","Catch FlowableDmnExpressionException at the decision-evaluation boundary and report which rule/output cell failed."],"exampleFix":"// before (output entry)\n${execution.setVariable('approved', yes)}\n// after (valid literal / correct variable name)\n${approved}","handlingStrategy":"try-catch","validationCode":"if (outputEntry.getText() == null || outputEntry.getText().isBlank()) { /* default or skip */ }","typeGuard":null,"tryCatchPattern":"try {\n    ELExpressionExecutor.executeOutputExpression(clause, entry, em, ctx);\n} catch (FlowableDmnExpressionException e) {\n    LOGGER.error(\"Output entry '{}' failed: {}\", e.getExpressionString(), e.getCause());\n    // fall back to null output or propagate a rule failure\n}","preventionTips":["Keep output expressions simple/literal where possible","Ensure any execution.setVariable calls reference valid variables and run in order","Check the WARN log 'Error while executing output entry' for the failing text and cause","Re-test output expressions after engine/EL provider upgrades"],"tags":["java","dmn","expression-evaluation","flowable"],"backgroundTag":"expression-evaluation-failed","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}