{"record":{"id":"b7ae01a40a431c94","repo":"flowable/flowable-engine","slug":"no-case-definition-found-for-id","errorCode":null,"errorMessage":"No case definition found for id = '","messagePattern":"No case definition found for id = '","errorType":"exception","errorClass":"FlowableObjectNotFoundException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/cmd/SetCaseDefinitionCategoryCmd.java","lineNumber":48,"sourceCode":"    protected String caseDefinitionId;\n    protected String category;\n\n    public SetCaseDefinitionCategoryCmd(String caseDefinitionId, String category) {\n        this.caseDefinitionId = caseDefinitionId;\n        this.category = category;\n    }\n\n    @Override\n    public Void execute(CommandContext commandContext) {\n\n        if (caseDefinitionId == null) {\n            throw new FlowableIllegalArgumentException(\"Case definition id is null\");\n        }\n\n        CaseDefinitionEntity caseDefinition = CommandContextUtil.getCaseDefinitionEntityManager(commandContext).findById(caseDefinitionId);\n\n        if (caseDefinition == null) {\n            throw new FlowableObjectNotFoundException(\"No case definition found for id = '\" + caseDefinitionId + \"'\", CaseDefinition.class);\n        }\n\n        // Update category\n        caseDefinition.setCategory(category);\n\n        // Remove case definition from cache, it will be refetch later\n        DeploymentCache<CaseDefinitionCacheEntry> caseDefinitionCache = CommandContextUtil.getCmmnEngineConfiguration(commandContext).getCaseDefinitionCache();\n        if (caseDefinitionCache != null) {\n            caseDefinitionCache.remove(caseDefinitionId);\n        }\n\n        return null;\n    }\n\n    public String getCaseDefinitionId() {\n        return caseDefinitionId;\n    }\n","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/cmd/SetCaseDefinitionCategoryCmd.java#L30-L66","documentation":"After a non-null id is validated, SetCaseDefinitionCategoryCmd looks up the CaseDefinitionEntity. If no case definition exists for the given id, it throws FlowableObjectNotFoundException with the id and CaseDefinition.class.","triggerScenarios":"Calling setCaseDefinitionCategory with a fabricated, deleted, or wrong-engine definition id; using an id from a different Flowable engine (e.g. a process definition id instead of a case definition id).","commonSituations":"Mixing process/case definition ids; definition removed by cleanup or redeploy; id copied from a different environment's database.","solutions":["Fetch the id via CaseDefinitionQuery (repositoryService.createCaseDefinitionQuery()) instead of hardcoding","Verify the id exists in ACT_RE_CASEDEF for the connected datasource","Confirm you are not passing a process definition id by mistake"],"exampleFix":"// before\nrepoService.setCaseDefinitionCategory(wrongId, \"hr\");\n// after\nCaseDefinition def = repoService.createCaseDefinitionQuery().caseDefinitionKey(\"myCase\").latestVersion().singleResult();\nrepoService.setCaseDefinitionCategory(def.getId(), \"hr\");","handlingStrategy":"validation","validationCode":"if (repoService.createCaseDefinitionQuery().caseDefinitionId(id).count() == 0) throw new IllegalStateException(\"Unknown case definition \" + id);","typeGuard":null,"tryCatchPattern":"try { repoService.setCaseDefinitionCategory(id, category); } catch (FlowableObjectNotFoundException e) { log.warn(\"Case definition not found: {}\", id); }","preventionTips":["Resolve ids via CaseDefinitionQuery","Distinguish case vs process definition ids","Verify environment/datasource consistency"],"tags":["cmmn","case-definition","not-found"],"backgroundTag":"record-not-found","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}