{"record":{"id":"db5f065c7755fe9e","repo":"flowable/flowable-engine","slug":"no-event-definition-found-for-id-eventdefinit","errorCode":null,"errorMessage":"No event definition found for id = '${eventDefinitionId}'","messagePattern":"No event definition found for id = '(.+?)'","errorType":"exception","errorClass":"FlowableObjectNotFoundException","httpStatus":404,"severity":"error","filePath":"modules/flowable-event-registry/src/main/java/org/flowable/eventregistry/impl/cmd/SetEventDefinitionCategoryCmd.java","lineNumber":48,"sourceCode":"    protected String eventDefinitionId;\n    protected String category;\n\n    public SetEventDefinitionCategoryCmd(String eventDefinitionId, String category) {\n        this.eventDefinitionId = eventDefinitionId;\n        this.category = category;\n    }\n\n    @Override\n    public Void execute(CommandContext commandContext) {\n\n        if (eventDefinitionId == null) {\n            throw new FlowableIllegalArgumentException(\"Event definition id is null\");\n        }\n\n        EventDefinitionEntity eventDefinition = CommandContextUtil.getEventDefinitionEntityManager(commandContext).findById(eventDefinitionId);\n\n        if (eventDefinition == null) {\n            throw new FlowableObjectNotFoundException(\"No event definition found for id = '\" + eventDefinitionId + \"'\");\n        }\n\n        // Update category\n        eventDefinition.setCategory(category);\n\n        // Remove form from cache, it will be refetch later\n        DeploymentCache<EventDefinitionCacheEntry> eventDefinitionCache = CommandContextUtil.getEventRegistryConfiguration().getEventDefinitionCache();\n        if (eventDefinitionCache != null) {\n            eventDefinitionCache.remove(eventDefinitionId);\n        }\n\n        CommandContextUtil.getEventDefinitionEntityManager(commandContext).update(eventDefinition);\n\n        return null;\n    }\n\n    public String getEventDefinitionId() {\n        return eventDefinitionId;","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-event-registry/src/main/java/org/flowable/eventregistry/impl/cmd/SetEventDefinitionCategoryCmd.java#L30-L66","documentation":"SetEventDefinitionCategoryCmd throws FlowableObjectNotFoundException when no event definition exists for the given (non-null) id. The lookup findById(eventDefinitionId) returned null, so the category update cannot proceed.","triggerScenarios":"Calling setEventDefinitionCategory with an id that does not correspond to any persisted event definition - wrong engine, deleted definition, or id from a different registry (e.g. a form or process definition id).","commonSituations":"Reusing ids across engines (process vs event registry), referencing definitions removed by an undeploy, environment mismatch (test id used in prod), or key-vs-id confusion (passing the definition key instead of its database id).","solutions":["Look up the definition by key instead: eventRepositoryService.createEventDefinitionQuery().eventDefinitionKey(key).latestVersion().singleResult(), then use its getId().","Verify the id exists in the same database/engine the command runs against.","Check whether the event definition was deleted by a prior undeploy/deleteDeployment call."],"exampleFix":"// before\neventRepositoryService.setEventDefinitionCategory(\"order-event\", \"billing\"); // key, not id\n// after\nEventDefinition def = eventRepositoryService.createEventDefinitionQuery().eventDefinitionKey(\"order-event\").latestVersion().singleResult();\neventRepositoryService.setEventDefinitionCategory(def.getId(), \"billing\");","handlingStrategy":"validation","validationCode":"EventDefinition def = eventRepositoryService.createEventDefinitionQuery().eventDefinitionId(id).singleResult();\nif (def == null) throw new IllegalArgumentException(\"No event definition for id \" + id);","typeGuard":null,"tryCatchPattern":"try { svc.setEventDefinitionCategory(id, cat); } catch (FlowableObjectNotFoundException e) { /* fall back to key-based lookup */ }","preventionTips":["Look up by key + latestVersion instead of raw ids","Verify id belongs to the event registry, not the process/form engine","Check the definition was not deleted by an undeploy"],"tags":["flowable","event-registry","not-found","event-definition"],"backgroundTag":"record-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"}