{"record":{"id":"4ce183cfcf7dbf78","repo":"flowable/flowable-engine","slug":"at-least-one-correlation-parameter-value-must-be-p","errorCode":null,"errorMessage":"At least one correlation parameter value must be provided for a dynamic case start event subscription, otherwise the case would get started on all events, regardless their correlation parameter values.","messagePattern":"At least one correlation parameter value must be provided for a dynamic case start event subscription, otherwise the case would get started on all events, regardless their correlation parameter values\\.","errorType":"validation","errorClass":"FlowableIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/runtime/CaseInstanceStartEventSubscriptionBuilderImpl.java","lineNumber":97,"sourceCode":"    }\n\n    public String getTenantId() {\n        return tenantId;\n    }\n\n    @Override\n    public EventSubscription subscribe() {\n        checkValidInformation();\n        return cmmnRuntimeService.registerCaseInstanceStartEventSubscription(this);\n    }\n\n    protected void checkValidInformation() {\n        if (StringUtils.isEmpty(caseDefinitionKey)) {\n            throw new FlowableIllegalArgumentException(\"The case definition must be provided using the key for the subscription to be registered.\");\n        }\n\n        if (correlationParameterValues.isEmpty()) {\n            throw new FlowableIllegalArgumentException(\n                \"At least one correlation parameter value must be provided for a dynamic case start event subscription, \"\n                    + \"otherwise the case would get started on all events, regardless their correlation parameter values.\");\n        }\n    }\n}\n","sourceCodeStart":79,"sourceCodeEnd":103,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/runtime/CaseInstanceStartEventSubscriptionBuilderImpl.java#L79-L103","documentation":"CaseInstanceStartEventSubscriptionBuilderImpl.checkValidInformation() requires at least one correlation parameter value for a dynamic case start event subscription. Without one, the case would start on every matching event regardless of payload, which Flowable rejects with FlowableIllegalArgumentException.","triggerScenarios":"Building a subscription via createCaseInstanceStartEventSubscriptionBuilder().caseDefinitionKey(...) then subscribe() without adding any correlation parameter value (correlationParameterValues map empty).","commonSituations":"Omitting correlationParameter(name, value) calls; passing an empty map via the bulk API; assuming correlation parameters are optional because start forms are optional.","solutions":["Add at least one correlationParameterValue/correlationParameters entry before subscribe()","Derive the correlation values from the event payload mapping configured in the CMMN model","If unconditional start is intended, use static (non-dynamic) case start behavior instead of a start event subscription"],"exampleFix":"// before\nbuilder.caseDefinitionKey(\"myCase\").subscribe(); // no correlation values\n// after\nbuilder.caseDefinitionKey(\"myCase\")\n    .correlationParameterValue(\"orderId\", orderId)\n    .subscribe();","handlingStrategy":"validation","validationCode":"if (builder == null || correlationValues == null || correlationValues.isEmpty()) throw new IllegalStateException(\"at least one correlation parameter value required\");","typeGuard":"boolean hasCorrelationValues(Map<String,Object> m) { return m != null && !m.isEmpty(); }","tryCatchPattern":"try { builder.subscribe(); } catch (FlowableIllegalArgumentException e) { log.error(\"Missing correlation parameter values: {}\", e.getMessage()); }","preventionTips":["Always add at least one correlationParameter entry before subscribe()","Derive correlation values from the CMMN start event mapping rather than ad-hoc values","Review builder call sites with a checklist: key + correlation values"],"tags":["flowable","cmmn","event-subscription","correlation","validation"],"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"}