{"record":{"id":"d262f669f6de336d","repo":"flowable/flowable-engine","slug":"no-decision-table-found-for-id-id","errorCode":null,"errorMessage":"No decision table found for id = '<id>'","messagePattern":"No decision table found for id = '<id>'","errorType":"exception","errorClass":"FlowableObjectNotFoundException","httpStatus":null,"severity":"error","filePath":"modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/cmd/SetDecisionTableCategoryCmd.java","lineNumber":47,"sourceCode":"    protected String decisionTableId;\r\n    protected String category;\r\n\r\n    public SetDecisionTableCategoryCmd(String decisionTableId, String category) {\r\n        this.decisionTableId = decisionTableId;\r\n        this.category = category;\r\n    }\r\n\r\n    @Override\r\n    public Void execute(CommandContext commandContext) {\r\n\r\n        if (decisionTableId == null) {\r\n            throw new FlowableIllegalArgumentException(\"Decision table id is null\");\r\n        }\r\n\r\n        DecisionEntity decisionTable = CommandContextUtil.getDecisionEntityManager(commandContext).findById(decisionTableId);\r\n\r\n        if (decisionTable == null) {\r\n            throw new FlowableObjectNotFoundException(\"No decision table found for id = '\" + decisionTableId + \"'\");\r\n        }\r\n\r\n        // Update category\r\n        decisionTable.setCategory(category);\r\n\r\n        // Remove process definition from cache, it will be refetch later\r\n        DeploymentCache<DecisionCacheEntry> decisionTableCache = CommandContextUtil.getDmnEngineConfiguration().getDefinitionCache();\r\n        if (decisionTableCache != null) {\r\n            decisionTableCache.remove(decisionTableId);\r\n        }\r\n\r\n        CommandContextUtil.getDecisionEntityManager(commandContext).update(decisionTable);\r\n\r\n        return null;\r\n    }\r\n\r\n    public String getDecisionTableId() {\r\n        return decisionTableId;\r","sourceCodeStart":29,"sourceCodeEnd":65,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/cmd/SetDecisionTableCategoryCmd.java#L29-L65","documentation":"After validating the id, SetDecisionTableCategoryCmd looks up the decision table via DecisionEntityManager.findById. If no decision table exists for the given id it throws FlowableObjectNotFoundException with 'No decision table found for id = <id>'.","triggerScenarios":"Calling dmnRepositoryService.setDecisionTableCategory(id, category) where id is non-null but does not match any persisted decision table (never deployed, deleted, wrong engine/database).","commonSituations":"Typos in hardcoded ids, pointing at a different database/schema than the one the table was deployed to, the decision table being deleted by a cascade delete of its deployment, or mixing process-engine ids with DMN-engine ids.","solutions":["Verify the id exists: dmnRepositoryService.createDecisionTableQuery().decisionTableId(id).singleResult() before updating","Confirm you are connected to the correct database/schema used at deployment time","Re-check whether the deployment owning the decision table was deleted"],"exampleFix":"// before\nrepositoryService.setDecisionTableCategory(id, \"cat\"); // may throw not-found\n// after\nDecision d = repositoryService.createDecisionTableQuery().decisionTableId(id).singleResult();\nif (d == null) throw new IllegalStateException(\"Unknown decision table: \" + id);\nrepositoryService.setDecisionTableCategory(id, \"cat\");","handlingStrategy":"validation","validationCode":"Decision d = repositoryService.createDecisionTableQuery().decisionTableId(id).singleResult();\nif (d == null) throw new IllegalStateException(\"Decision table not found: \" + id);","typeGuard":null,"tryCatchPattern":"try {\n    repositoryService.setDecisionTableCategory(id, category);\n} catch (FlowableObjectNotFoundException e) {\n    log.error(\"Decision table missing: {}\", id, e);\n    throw new IllegalStateException(\"Unknown decision table id\", e);\n}","preventionTips":["Verify existence with a query before updates","Ensure the DMN engine points at the correct database/schema","Beware cascade deletes removing the decision table with its deployment"],"tags":["java","flowable-dmn","not-found"],"backgroundTag":"entity-not-found","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"}