{"record":{"id":"ce0848b9755ffe68","repo":"flowable/flowable-engine","slug":"no-event-definition-found-for-key","errorCode":null,"errorMessage":"No event definition found for key ''","messagePattern":"No event definition found for key ''","errorType":"exception","errorClass":"FlowableObjectNotFoundException","httpStatus":null,"severity":"error","filePath":"modules/flowable-event-registry/src/main/java/org/flowable/eventregistry/impl/cmd/GetEventModelCmd.java","lineNumber":76,"sourceCode":"        EventRegistryEngineConfiguration eventEngineConfiguration = CommandContextUtil.getEventRegistryConfiguration(commandContext);\n        EventDeploymentManager deploymentManager = eventEngineConfiguration.getDeploymentManager();\n        EventDefinitionEntityManager eventDefinitionEntityManager = eventEngineConfiguration.getEventDefinitionEntityManager();\n\n        // Find the event definition\n        EventDefinitionEntity eventDefinitionEntity = null;\n        if (eventDefinitionId != null) {\n\n            eventDefinitionEntity = deploymentManager.findDeployedEventDefinitionById(eventDefinitionId);\n            if (eventDefinitionEntity == null) {\n                throw new FlowableObjectNotFoundException(\"No event definition found for id = '\" + eventDefinitionId + \"'\", EventDefinitionEntity.class);\n            }\n\n        } else if (eventDefinitionKey != null && (tenantId == null || EventRegistryEngineConfiguration.NO_TENANT_ID.equals(tenantId)) && \n                        (parentDeploymentId == null || eventEngineConfiguration.isAlwaysLookupLatestDefinitionVersion())) {\n\n            eventDefinitionEntity = deploymentManager.findDeployedLatestEventDefinitionByKey(eventDefinitionKey);\n            if (eventDefinitionEntity == null) {\n                throw new FlowableObjectNotFoundException(\"No event definition found for key '\" + eventDefinitionKey + \"'\", EventDefinitionEntity.class);\n            }\n\n        } else if (eventDefinitionKey != null && tenantId != null && !EventRegistryEngineConfiguration.NO_TENANT_ID.equals(tenantId) && \n                        (parentDeploymentId == null || eventEngineConfiguration.isAlwaysLookupLatestDefinitionVersion())) {\n\n            eventDefinitionEntity = eventDefinitionEntityManager.findLatestEventDefinitionByKeyAndTenantId(eventDefinitionKey, tenantId);\n            \n            if (eventDefinitionEntity == null && eventEngineConfiguration.isFallbackToDefaultTenant()) {\n                String defaultTenant = eventEngineConfiguration.getDefaultTenantProvider().getDefaultTenant(tenantId, ScopeTypes.EVENT_REGISTRY, eventDefinitionKey);\n                if (StringUtils.isNotEmpty(defaultTenant)) {\n                    eventDefinitionEntity = eventDefinitionEntityManager.findLatestEventDefinitionByKeyAndTenantId(eventDefinitionKey, defaultTenant);\n                } else {\n                    eventDefinitionEntity = eventDefinitionEntityManager.findLatestEventDefinitionByKey(eventDefinitionKey);\n                }\n            }\n            \n            if (eventDefinitionEntity == null) {\n                throw new FlowableObjectNotFoundException(\"No event definition found for key '\" + eventDefinitionKey + \"' for tenant identifier '\" + tenantId + \"'\", EventDefinitionEntity.class);","sourceCodeStart":58,"sourceCodeEnd":94,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-event-registry/src/main/java/org/flowable/eventregistry/impl/cmd/GetEventModelCmd.java#L58-L94","documentation":"When resolving by eventDefinitionKey with no tenant (or NO_TENANT_ID) and default version lookup, findDeployedLatestEventDefinitionByKey returned null, so the command throws FlowableObjectNotFoundException 'No event definition found for key <key>'. The key has no deployed latest definition in the default tenant scope.","triggerScenarios":"GetEventModelCmd(eventDefinitionId=null, eventDefinitionKey='someKey', tenantId=null) where no event definition with that key was ever deployed, or all its deployments were deleted.","commonSituations":"Typo in the event key (key in code vs key in the deployed JSON model); event model never deployed; key renamed in the model source after deployments were cleaned up.","solutions":["Verify the key with EventRepositoryService.createEventDefinitionQuery().eventDefinitionKey(key).latestVersion().singleResult()","Deploy the event model containing that key before calling getEventModelByKey","Correct the key string to match the deployed definition"],"exampleFix":"// before\nEventModel m = eventRepositoryService.getEventModelByKey(\"orderCreated\"); // key never deployed\n// after\nEventDefinition d = eventRepositoryService.createEventDefinitionQuery()\n    .eventDefinitionKey(\"orderCreated\").latestVersion().singleResult();\nif (d == null) {\n    eventRepositoryService.createDeployment().addClasspathResource(\"order-created.event.json\").deploy();\n}\nEventModel m = eventRepositoryService.getEventModelByKey(\"orderCreated\");","handlingStrategy":"validation","validationCode":"EventDefinition def = eventRepositoryService.createEventDefinitionQuery()\n    .eventDefinitionKey(key).latestVersion().singleResult();\nif (def == null) throw new IllegalArgumentException(\"No event definition for key: \" + key);","typeGuard":"boolean keyDeployed = eventRepositoryService.createEventDefinitionQuery().eventDefinitionKey(key).count() > 0;","tryCatchPattern":"try {\n    return eventRepositoryService.getEventModelByKey(key);\n} catch (FlowableObjectNotFoundException e) {\n    log.warn(\"No event definition for key {}; ensure deployment ran\", key);\n    throw e;\n}","preventionTips":["Keep event keys in shared constants matching deployed models","Auto-deploy event models at startup","Grep deployed resources for the key before runtime lookups"],"tags":["flowable","event-registry","not-found","event-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"}