{"record":{"id":"8ba1018a043a716e","repo":"flowable/flowable-engine","slug":"the-case-definition-must-be-provided-using-the-exa","errorCode":null,"errorMessage":"The case definition must be provided using the exact id of the version the subscription was registered for.","messagePattern":"The case definition must be provided using the exact id of the version the subscription was registered for\\.","errorType":"validation","errorClass":"FlowableIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/runtime/CaseInstanceStartEventSubscriptionDeletionBuilderImpl.java","lineNumber":86,"sourceCode":"    }\n\n    public boolean hasCorrelationParameterValues() {\n        return correlationParameterValues.size() > 0;\n    }\n\n    public Map<String, Object> getCorrelationParameterValues() {\n        return correlationParameterValues;\n    }\n\n    @Override\n    public void deleteSubscriptions() {\n        checkValidInformation();\n        cmmnRuntimeService.deleteCaseInstanceStartEventSubscriptions(this);\n    }\n\n    protected void checkValidInformation() {\n        if (StringUtils.isEmpty(caseDefinitionId)) {\n            throw new FlowableIllegalArgumentException(\"The case definition must be provided using the exact id of the version the subscription was registered for.\");\n        }\n    }\n}\n","sourceCodeStart":68,"sourceCodeEnd":90,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/runtime/CaseInstanceStartEventSubscriptionDeletionBuilderImpl.java#L68-L90","documentation":"CaseInstanceStartEventSubscriptionDeletionBuilderImpl.deleteSubscriptions() validates via checkValidInformation() that a caseDefinitionId (the exact id of the deployed definition version) was set. Deleting subscriptions for a specific version requires the id, not the key; an empty/null id throws FlowableIllegalArgumentException.","triggerScenarios":"Calling cmmnRuntimeService.createCaseInstanceStartEventSubscriptionDeletionBuilder() ... deleteSubscriptions() without calling caseDefinitionId(String), or passing null/empty.","commonSituations":"Passing the definition key where the id is required (register builder uses key, deletion builder uses id); id sourced from a null repository-service lookup; confusing the two builders' requirements.","solutions":["Call caseDefinitionId(...) with the exact deployed definition id before deleteSubscriptions()","Obtain the id via repositoryService.createCaseDefinitionQuery().caseDefinitionKey(key).latestVersion().singleResult().getId()","Verify you are not accidentally setting caseDefinitionKey on the deletion builder"],"exampleFix":"// before\nruntimeService.createCaseInstanceStartEventSubscriptionDeletionBuilder()\n    .caseDefinitionKey(\"myCase\") // wrong: id required\n    .deleteSubscriptions();\n// after\nCaseDefinition def = repositoryService.createCaseDefinitionQuery()\n    .caseDefinitionKey(\"myCase\").latestVersion().singleResult();\nruntimeService.createCaseInstanceStartEventSubscriptionDeletionBuilder()\n    .caseDefinitionId(def.getId())\n    .deleteSubscriptions();","handlingStrategy":"validation","validationCode":"CaseDefinition def = repo.createCaseDefinitionQuery().caseDefinitionKey(key).latestVersion().singleResult(); if (def == null || def.getId() == null) throw new IllegalStateException(\"definition not deployed\");","typeGuard":"boolean hasText(String s) { return s != null && !s.trim().isEmpty(); }","tryCatchPattern":"try { deletionBuilder.deleteSubscriptions(); } catch (FlowableIllegalArgumentException e) { log.error(\"caseDefinitionId required: {}\", e.getMessage()); }","preventionTips":["Remember: registration uses key, deletion/modification use id","Resolve and null-check the definition id from the repository service","Do not pass keys where ids are required"],"tags":["flowable","cmmn","event-subscription","validation","missing-key"],"backgroundTag":"missing-required-argument","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"}