{"record":{"id":"79b6d368aa61bbf6","repo":"flowable/flowable-engine","slug":"error-while-executing-input-entry-79b6d3","errorCode":null,"errorMessage":"Error while executing input entry: {}","messagePattern":"Error while executing input entry: (.+?)","errorType":"console","errorClass":"FlowableDmnExpressionException","httpStatus":null,"severity":"error","filePath":"modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/ELExpressionExecutor.java","lineNumber":58,"sourceCode":"            throw new IllegalArgumentException(\"input entry is required\");\n        }\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);","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/ELExpressionExecutor.java#L40-L76","documentation":"executeInputExpression in ELExpressionExecutor logs this warning and then throws FlowableDmnExpressionException when evaluating a DMN decision table input entry (condition) expression fails. It means the EL expression in the input entry could not be evaluated against the rule's stack variables, so the decision cannot be computed.","triggerScenarios":"A DMN decision table input entry expression throws any exception during condition.evaluate — unknown variable in the execution context, wrong operator/function, or class cast issue while evaluating.","commonSituations":"Typos in input variable names in the DMN XML; using functions not registered in the Flowable EL context; input data supplied under a different name than the expression expects; version migration changed built-in EL functions.","solutions":["Read the wrapped exception/stack trace to find the failing expression and root cause.","Verify input entry expressions reference variables actually present in the execution context (input data names).","Test the expression against sample values and correct syntax/operators.","Ensure custom EL functions/beans used in the expression are registered on the DMN engine configuration."],"exampleFix":"// before (DMN XML input entry)\n<text>${amount > 1000}</text> <!-- 'amount' not in context -->\n// after\n<text>${invoiceAmount > 1000}</text> <!-- matches input variable -->","handlingStrategy":"try-catch","validationCode":"// Validate expression inputs before decision execution\nMap<String, Object> vars = dmnExecutionContext.getStackVariables();\nif (!vars.containsKey(\"invoiceAmount\")) throw new IllegalArgumentException(\"Missing DMN input variable invoiceAmount\");","typeGuard":null,"tryCatchPattern":"try { decisionTableResults = dmnRuleService.createExecuteDecisionBuilder()...execute(); }\ncatch (FlowableDmnExpressionException e) { log.error(\"Input entry '{}' failed: {}\", e.getExpression(), e.getCause(), e); }","preventionTips":["Match expression variable names exactly to declared DMN input data.","Test decision tables with sample inputs before deployment.","Register any custom EL functions used by expressions."],"tags":["dmn","expression","el","decision-table"],"backgroundTag":"invalid-argument-value","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}