{"record":{"id":"5fdfc22fb8202812","repo":"flowable/flowable-engine","slug":"unsupported-intermediate-catch-event-type-for-even","errorCode":null,"errorMessage":"Unsupported intermediate catch event type for event {}","messagePattern":"Unsupported intermediate catch event type for event (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"modules/flowable5-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/IntermediateCatchEventParseHandler.java","lineNumber":79,"sourceCode":"                nestedActivity = createActivityOnScope(bpmnParse, event, BpmnXMLConstants.ELEMENT_EVENT_CATCH, gatewayActivity);\n            } else {\n                nestedActivity = createActivityOnScope(bpmnParse, event, BpmnXMLConstants.ELEMENT_EVENT_CATCH, scope);\n            }\n\n            nestedActivity.setAsync(event.isAsynchronous());\n            nestedActivity.setExclusive(!event.isNotExclusive());\n\n            // Catch event behavior is the same for all types\n            nestedActivity.setActivityBehavior(bpmnParse.getActivityBehaviorFactory().createIntermediateCatchEventActivityBehavior(event));\n\n            if (eventDefinition instanceof TimerEventDefinition\n                    || eventDefinition instanceof SignalEventDefinition\n                    || eventDefinition instanceof MessageEventDefinition) {\n\n                bpmnParse.getBpmnParserHandlers().parseElement(bpmnParse, eventDefinition);\n\n            } else {\n                LOGGER.warn(\"Unsupported intermediate catch event type for event {}\", event.getId());\n            }\n        }\n    }\n\n}\n","sourceCodeStart":61,"sourceCodeEnd":85,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable5-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/IntermediateCatchEventParseHandler.java#L61-L85","documentation":"An intermediate catch event carries an event definition type the parser does not recognize among the supported kinds (timer, signal, message). The parser logs this warning and leaves the event without a behavior, so it will never fire. This guards against malformed or future/unknown BPMN event definition types.","triggerScenarios":"executeParse of an IntermediateCatchEvent whose eventDefinition is not a TimerEventDefinition, SignalEventDefinition, or MessageEventDefinition (e.g. a compensatescatch or link event definition placed on a catch event, or XML yielding an unexpected EventDefinition subclass).","commonSituations":"Using link or compensation event definitions on catch events (not supported here); importing BPMN from other tools emitting exotic event types; typo'd element names producing a default EventDefinition object.","solutions":["Replace the catch event's event definition with a timer, message, or signal definition","Remove the unsupported event definition or the whole catch event if it is not needed","Convert unsupported constructs (e.g. link events) into equivalent supported elements before deployment"],"exampleFix":"// before\n<intermediateCatchEvent id=\"c1\"><linkEventDefinition name=\"x\"/></intermediateCatchEvent>\n// after\n<intermediateCatchEvent id=\"c1\"><timerEventDefinition><timeDuration>PT1H</timeDuration></timerEventDefinition></intermediateCatchEvent>","handlingStrategy":"validation","validationCode":"for (IntermediateCatchEvent e : model.getFlowElementsOfType(IntermediateCatchEvent.class)) {\n    for (EventDefinition ed : e.getEventDefinitions()) {\n        if (!(ed instanceof TimerEventDefinition || ed instanceof MessageEventDefinition || ed instanceof SignalEventDefinition)) {\n            throw new IllegalArgumentException(\"Unsupported catch event definition on \" + e.getId());\n        }\n    }\n}","typeGuard":"function isSupportedCatchDefinition(ed) { return ed != null && ['timer','message','signal'].includes(ed.type ?? guessType(ed)); }","tryCatchPattern":null,"preventionTips":["Restrict catch events to timer/message/signal definitions","Sanitize imported BPMN from third-party designers before deploy","Pin the engine version matching your modeling tool's BPMN feature set"],"tags":["bpmn","parsing","catch-event","unsupported-type"],"backgroundTag":"unsupported-operation","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"}