{"record":{"id":"7b047683cefd7bdb","repo":"flowable/flowable-engine","slug":"error-while-executing-input-entry","errorCode":null,"errorMessage":"error while executing input entry","messagePattern":"error while executing input 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":59,"sourceCode":"        }\n        if (executionContext == null) {\n            throw new IllegalArgumentException(\"execution context is required\");\n        }\n        \n        String inputExpression = inputClause.getInputExpression().getText();\n        executionContext.checkExecutionContext(inputExpression);\n        \n        // pre parse expression\n        String parsedExpression = ELInputEntryExpressionPreParser.parse(inputEntry.getText(), inputExpression, inputClause.getInputExpression().getTypeRef());\n\n        Expression expression = expressionManager.createExpression(parsedExpression);\n        RuleExpressionCondition condition = new RuleExpressionCondition(expression);\n        \n        try {\n            return condition.evaluate(executionContext.getStackVariables(), executionContext);\n        } catch (Exception ex) {\n            LOGGER.warn(\"Error while executing input entry: {}\", parsedExpression, ex);\n            throw new FlowableDmnExpressionException(\"error while executing input entry\", parsedExpression, ex);\n        }\n    }\n\n    public static Object executeOutputExpression(OutputClause outputClause, LiteralExpression outputEntry, ExpressionManager expressionManager, ELExecutionContext executionContext) {\n        if (outputClause == null) {\n            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);","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/ELExpressionExecutor.java#L41-L77","documentation":"Wrapped failure thrown by executeInputExpression when evaluating the parsed input-entry expression via RuleExpressionCondition.evaluate throws any Exception. The original exception is preserved as the cause and FlowableDmnExpressionException carries the parsed expression text, indicating the EL/FEEL expression failed at runtime (bad syntax, missing variable, wrong types, or forbidden expression content).","triggerScenarios":"Any exception inside condition.evaluate(stackVariables, executionContext): unparseable/invalid expression text in the input entry, referencing a variable not present in the execution context stack, type errors during comparison, or a JuelElProvider/ELProvider failure.","commonSituations":"DMN input entries referencing input variable names that differ from those passed at decision evaluation; expressions like `> 100` or date comparisons that the EL provider can't handle; custom EL providers throwing on unsupported constructs; typos in expression syntax.","solutions":["Read the cause (FlowableDmnExpressionException#getCause) and the logged parsedExpression to identify the real failure; fix the expression text in the DMN model.","Verify the variables passed to the decision evaluation (DmnDecisionTableRuleInput) match the names used in input expressions (executionContext.checkExecutionContext also validates this).","Test the expression in isolation; correct FEEL/EL syntax and operand types (e.g. use proper date literals or JUEL-parseable expressions).","Catch FlowableDmnExpressionException at your evaluation entry point and map it to a user-facing validation error for the offending rule/cell."],"exampleFix":"// before (DMN input entry)\namount > 10 && status = 'open'\n// after (quote string literal correctly for the EL provider)\namount > 10 && status == \"open\"","handlingStrategy":"try-catch","validationCode":"executionContext.checkExecutionContext(inputExpression); // run before evaluation to catch unknown variables early","typeGuard":null,"tryCatchPattern":"try {\n    ELExpressionExecutor.executeInputExpression(clause, entry, em, ctx);\n} catch (FlowableDmnExpressionException e) {\n    LOGGER.error(\"Input entry '{}' failed: {}\", e.getExpressionString(), e.getCause());\n    // map to rule-level validation error\n}","preventionTips":["Keep input-entry expressions syntactically valid for the configured EL provider","Ensure referenced input variable names match those supplied at decision evaluation","Watch the WARN log line 'Error while executing input entry' for the parsed expression and root cause","Test expressions in isolation after upgrading Flowable or swapping EL providers"],"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"}