{"record":{"id":"94c3b10511b5c7c3","repo":"flowable/flowable-engine","slug":"cannot-find-case-definition-for-id-94c3b1","errorCode":null,"errorMessage":"Cannot find case definition for id: ","messagePattern":"Cannot find case definition for id: ","errorType":"exception","errorClass":"FlowableObjectNotFoundException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/cmd/GetFormDefinitionsForCaseDefinitionCmd.java","lineNumber":55,"sourceCode":"/**\n * @author Tijs Rademakers\n */\npublic class GetFormDefinitionsForCaseDefinitionCmd implements Command<List<FormDefinition>>, Serializable {\n\n    private static final long serialVersionUID = 1L;\n    protected String caseDefinitionId;\n    protected FormRepositoryService formRepositoryService;\n\n    public GetFormDefinitionsForCaseDefinitionCmd(String caseDefinitionId) {\n        this.caseDefinitionId = caseDefinitionId;\n    }\n\n    @Override\n    public List<FormDefinition> execute(CommandContext commandContext) {\n        CaseDefinition caseDefinition = CaseDefinitionUtil.getCaseDefinition(caseDefinitionId);\n        \n        if (caseDefinition == null) {\n            throw new FlowableObjectNotFoundException(\"Cannot find case definition for id: \" + caseDefinitionId, CaseDefinition.class);\n        }\n        \n        Case caseModel = CaseDefinitionUtil.getCase(caseDefinitionId);\n\n        if (caseModel == null) {\n            throw new FlowableObjectNotFoundException(\"Cannot find case definition for id: \" + caseDefinitionId, Case.class);\n        }\n\n        formRepositoryService = CommandContextUtil.getFormEngineConfiguration(commandContext).getFormRepositoryService();\n\n        if (formRepositoryService == null) {\n            throw new FlowableException(\"Form repository service is not available\");\n        }\n\n        List<FormDefinition> formDefinitions = getFormDefinitionsFromModel(caseModel, caseDefinition);\n\n        return formDefinitions;\n    }","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/cmd/GetFormDefinitionsForCaseDefinitionCmd.java#L37-L73","documentation":"GetFormDefinitionsForCaseDefinitionCmd resolves the CaseDefinition via CaseDefinitionUtil before extracting form definitions from the case model. A null case definition raises FlowableObjectNotFoundException with the caseDefinitionId, typed to CaseDefinition.class.","triggerScenarios":"Calling the command (e.g. via form retrieval paths for a case definition) with a caseDefinitionId that does not exist in ACT_CMMN_CASEDEF.","commonSituations":"Using a BPMN process definition id here; stale definition id after redeploy or DB reset; tenant-specific lookup missing the row for that tenant.","solutions":["Verify the id with cmmnRepositoryService.createCaseDefinitionQuery().caseDefinitionId(id).singleResult()","List case definitions and use a returned id","Check tenant filtering if definitions are tenant-scoped"],"exampleFix":"// before\nList<FormDefinition> defs = getFormDefinitionsForCaseDefinition(caseDefinitionId); // unknown id\n// after\nCaseDefinition cd = cmmnRepositoryService.createCaseDefinitionQuery().caseDefinitionId(caseDefinitionId).singleResult();\nif (cd != null) {\n    List<FormDefinition> defs = getFormDefinitionsForCaseDefinition(caseDefinitionId);\n}","handlingStrategy":"validation","validationCode":"boolean exists = cmmnRepositoryService.createCaseDefinitionQuery().caseDefinitionId(caseDefinitionId).count() > 0;","typeGuard":null,"tryCatchPattern":"try { return formDefinitionsForCaseDefinition(id); } catch (FlowableObjectNotFoundException e) { log.warn(\"Unknown case definition {}\", id); return Collections.emptyList(); }","preventionTips":["Resolve definition ids from case definition queries, not hardcoded values","Mind tenant scoping when looking up definitions","Re-resolve ids after redeployments (latest version) instead of reusing old ids"],"tags":["not-found","cmmn","case-definition"],"backgroundTag":"resource-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"}