{"record":{"id":"37e08b4dda25fbd4","repo":"flowable/flowable-engine","slug":"no-event-definition-found","errorCode":null,"errorMessage":"No event definition found","messagePattern":"No event definition found","errorType":"http","errorClass":"FlowableObjectNotFoundException","httpStatus":404,"severity":"error","filePath":"modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/runtime/EventInstanceCollectionResource.java","lineNumber":105,"sourceCode":"                eventDefinitionQuery.tenantId(request.getTenantId());\n            }\n            \n            eventDefinition = eventDefinitionQuery.latestVersion().singleResult();\n            \n            if (eventDefinition == null && eventRegistryEngineConfiguration.isFallbackToDefaultTenant()) {\n                String defaultTenant = eventRegistryEngineConfiguration.getDefaultTenantProvider().getDefaultTenant(request.getTenantId(), ScopeTypes.EVENT_REGISTRY, request.getEventDefinitionKey());\n                if (StringUtils.isNotEmpty(defaultTenant)) {\n                    eventDefinitionQuery = repositoryService.createEventDefinitionQuery().eventDefinitionKey(request.getEventDefinitionKey()).tenantId(defaultTenant);\n                } else {\n                    eventDefinitionQuery = repositoryService.createEventDefinitionQuery().eventDefinitionKey(request.getEventDefinitionKey());\n                }\n                \n                eventDefinition = eventDefinitionQuery.latestVersion().singleResult();\n            }\n        }\n        \n        if (eventDefinition == null) {\n            throw new FlowableObjectNotFoundException(\"No event definition found\");\n        }\n\n        ChannelModel channelModel = null;\n        if (StringUtils.isNotEmpty(request.getChannelDefinitionId())) {\n            channelModel = repositoryService.getChannelModelById(request.getChannelDefinitionId());\n        } else if (StringUtils.isNotEmpty(request.getTenantId())) {\n            channelModel = repositoryService.getChannelModelByKey(request.getChannelDefinitionKey(), request.getTenantId());\n        } else {\n            channelModel = repositoryService.getChannelModelByKey(request.getChannelDefinitionKey());\n        }\n\n        eventRegistry.eventReceived((InboundChannelModel) channelModel, request.getEventPayload().toString());\n    }\n\n    protected void validateRequestParameters(@RequestBody EventInstanceCreateRequest request) {\n        if (request.getEventDefinitionId() == null && request.getEventDefinitionKey() == null) {\n            throw new FlowableIllegalArgumentException(\"Either eventDefinitionId or eventDefinitionKey is required.\");\n        }","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/runtime/EventInstanceCollectionResource.java#L87-L123","documentation":"When creating an event instance via the REST API, the resolved event definition (by id, key, or latest version) is null; the endpoint throws FlowableObjectNotFoundException 'No event definition found'.","triggerScenarios":"POST to event runtime endpoint with an eventDefinitionId/key matching no deployed event definition, or with only a key whose definition does not exist.","commonSituations":"Calling the endpoint before deploying the event registry model; misspelled key; wrong tenantId narrowing the query; version-specific lookups where the version doesn't exist.","solutions":["Deploy the event definition first and verify deployment success.","Check the eventDefinitionId/key spelling against deployed definitions.","Remove or correct tenantId so the query is not over-filtered.","Catch FlowableObjectNotFoundException and surface a client-friendly 404."],"exampleFix":"// before\neventRegistry.eventReceived(\"myKey\", payload); // key not deployed\n// after\nEventDefinition def = repo.createEventDefinitionQuery().eventDefinitionKey(\"myKey\").latestVersion().singleResult();\nif (def == null) throw new IllegalStateException(\"Deploy event definition 'myKey' first\");","handlingStrategy":"validation","validationCode":"EventDefinition def = repositoryService.createEventDefinitionQuery()\n    .eventDefinitionKey(key).latestVersion().singleResult();\nif (def == null) throw new IllegalStateException(\"Deploy event definition first: \" + key);","typeGuard":"null","tryCatchPattern":"try {\n    createEventInstance(request);\n} catch (FlowableObjectNotFoundException e) {\n    logger.error(\"No event definition matched request\", e);\n}","preventionTips":["Deploy event definitions before sending runtime events","Validate keys/ids against deployed definitions","Avoid over-filtering queries with tenantId"],"tags":["rest","not-found","event-runtime"],"backgroundTag":"entity-not-found","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}