{"record":{"id":"9393cc7fba6c6fee","repo":"flowable/flowable-engine","slug":"there-is-no-correlation-parameter-with-name-corr","errorCode":null,"errorMessage":"There is no correlation parameter with name '{correlationParameterName}' defined in event model with key '{eventModel.getKey()}'. You can only subscribe for an event with a combination of valid correlation parameters.","messagePattern":"There is no correlation parameter with name '(.+?)' defined in event model with key '(.+?)'\\. You can only subscribe for an event with a combination of valid correlation parameters\\.","errorType":"exception","errorClass":"FlowableIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine/src/main/java/org/flowable/engine/impl/cmd/AbstractProcessStartEventSubscriptionCmd.java","lineNumber":62,"sourceCode":"        EventModel eventModel = getEventModel(eventDefinitionKey, tenantId, commandContext);\n        Map<String, Object> correlationParameters = new HashMap<>();\n        for (Map.Entry<String, Object> correlationValue : correlationParameterValues.entrySet()) {\n            // make sure the correlation parameter value is based on a valid, defined correlation parameter within the event model\n            checkEventModelCorrelationParameter(eventModel, correlationValue.getKey());\n            correlationParameters.put(correlationValue.getKey(), correlationValue.getValue());\n        }\n\n        return CommandContextUtil.getEventRegistry().generateKey(correlationParameters);\n    }\n\n    protected void checkEventModelCorrelationParameter(EventModel eventModel, String correlationParameterName) {\n        Collection<EventPayload> correlationParameters = eventModel.getCorrelationParameters();\n        for (EventPayload correlationParameter : correlationParameters) {\n            if (correlationParameter.getName().equals(correlationParameterName)) {\n                return;\n            }\n        }\n        throw new FlowableIllegalArgumentException(\"There is no correlation parameter with name '\" + correlationParameterName + \"' defined in event model \"\n            + \"with key '\" + eventModel.getKey() + \"'. You can only subscribe for an event with a combination of valid correlation parameters.\");\n    }\n\n    protected ProcessDefinition getLatestProcessDefinitionByKey(String processDefinitionKey, String tenantId, CommandContext commandContext) {\n        ProcessDefinitionEntityManager processDefinitionEntityManager = CommandContextUtil.getProcessDefinitionEntityManager(commandContext);\n        ProcessDefinition processDefinition = null;\n        if (processDefinitionKey != null && (tenantId == null || ProcessEngineConfiguration.NO_TENANT_ID.equals(tenantId))) {\n            processDefinition = processDefinitionEntityManager.findLatestProcessDefinitionByKey(processDefinitionKey);\n\n            if (processDefinition == null) {\n                throw new FlowableObjectNotFoundException(\"No process definition found for key '\" + processDefinitionKey + \"'\", ProcessDefinition.class);\n            }\n\n        } else if (processDefinitionKey != null && tenantId != null && !ProcessEngineConfiguration.NO_TENANT_ID.equals(tenantId)) {\n\n            processDefinition = processDefinitionEntityManager.findLatestProcessDefinitionByKeyAndTenantId(processDefinitionKey, tenantId);\n\n            if (processDefinition == null) {","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine/src/main/java/org/flowable/engine/impl/cmd/AbstractProcessStartEventSubscriptionCmd.java#L44-L80","documentation":"When subscribing a process to a process start event, AbstractProcessStartEventSubscriptionCmd validates each supplied correlation parameter against the event model (event registry) definition. A correlationParameterName that is not declared in the event model's correlation parameters causes this FlowableIllegalArgumentException, preventing an impossible subscription.","triggerScenarios":"Calling createProcessInstanceStartEventSubscriptionServiceCmd / runtimeService event-registry subscription APIs with a correlation parameter name not present in eventModel.getCorrelationParameters() for the given event model key — typically a typo or a parameter removed from the event definition while old subscription code still sends it.","commonSituations":"Event model (JSON/BPMN event registry definition) updated to rename or drop a correlation parameter while client code still uses the old name; typo between the deployment and the subscription call; wrong event key passed so the looked-up model lacks the parameter.","solutions":["Align the correlation parameter names in the subscription call with the deployed event model definition (fix spelling or use the current parameter names).","Update the event model to declare the correlation parameter the code expects, then redeploy the event definition.","Verify the eventModel key being targeted — the parameter may exist on a different event model than the one resolved."],"exampleFix":"// before\nbuilder.correlationParameter(\"orderIdold\"); // not defined in event model\n// after\nbuilder.correlationParameter(\"orderId\"); // matches event model correlation parameter","handlingStrategy":"validation","validationCode":"Set<String> valid = eventModel.getCorrelationParameters().stream()\n    .map(EventPayload::getName).collect(Collectors.toSet());\nif (!valid.contains(correlationParameterName)) {\n    throw new IllegalArgumentException(\"Unknown correlation parameter \" + correlationParameterName);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Generate correlation parameter names from the event model definition, not string literals","Version event models together with subscribing code","Verify the event key resolves to the intended event model before subscribing"],"tags":["flowable","event-registry","correlation","validation"],"backgroundTag":"invalid-argument-value","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"}