{"record":{"id":"8eb4e246a5c17825","repo":"flowable/flowable-engine","slug":"error-while-reading-eventtype-element","errorCode":null,"errorMessage":"Error while reading eventType element","messagePattern":"Error while reading eventType element","errorType":"exception","errorClass":"FlowableException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/ExtensionElementsXMLConverter.java","lineNumber":417,"sourceCode":"\n        } else if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_DELEGATE_EXPRESSION))) {\n            handler.setImplementation(xtr.getAttributeValue(null, ATTRIBUTE_DELEGATE_EXPRESSION));\n            handler.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);\n        }\n    }\n\n    protected void readEventType(XMLStreamReader xtr, ConversionHelper conversionHelper) {\n        CmmnElement currentCmmnElement = conversionHelper.getCurrentCmmnElement();\n\n        String eventType = null;\n        try {\n\n            // Parsing and storing as an extension element, which means the export will work automatically\n            ExtensionElement extensionElement = CmmnXmlUtil.parseExtensionElement(xtr);\n            eventType = extensionElement.getElementText();\n            \n        } catch (Exception e) {\n            throw new FlowableException(\"Error while reading eventType element\", e);\n        }\n\n        if (currentCmmnElement instanceof Case caze) {\n            caze.setStartEventType(eventType);\n\n        } else if (currentCmmnElement instanceof SendEventServiceTask sendEventServiceTask) {\n            sendEventServiceTask.setEventType(eventType);\n\n        } else if (currentCmmnElement instanceof GenericEventListener genericEventListener) {\n            genericEventListener.setEventType(eventType);\n\n        } else {\n            LOGGER.warn(\"Unsupported eventType detected for element {}\", currentCmmnElement);\n        }\n    }\n\n    protected void readVariableAggregationDefinition(XMLStreamReader xtr, ConversionHelper conversionHelper) {\n        CmmnElement currentCmmnElement = conversionHelper.getCurrentCmmnElement();","sourceCodeStart":399,"sourceCodeEnd":435,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/ExtensionElementsXMLConverter.java#L399-L435","documentation":"Thrown by ExtensionElementsXMLConverter.readEventType when an exception occurs while reading the eventType element (parsed as an extension element whose text sets the start event type on a Case or event-related element). It wraps the underlying parsing exception in a FlowableException.","triggerScenarios":"CmmnXmlUtil.parseExtensionElement(xtr) or getElementText() throws while parsing the <eventType>/<flowable:eventType> element: malformed XML, unclosed tags, or invalid stream state.","commonSituations":"Hand-written start-event extensions with invalid markup; case files produced by tools emitting a non-standard eventType element; truncated files.","solutions":["Fix the XML around the eventType element (well-formed tags, valid nesting inside extensionElements).","Use a supported eventType value and element format matching your Flowable version's extension schema.","Validate the whole CMMN document against the XSD to catch structural issues before conversion."],"exampleFix":"<!-- before -->\n<extensionElements>\n  <flowable:eventType>user_join</flowable:eventType>\n</extensionElements>\n<!-- after (well-formed, schema-compliant) -->\n<extensionElements>\n  <flowable:eventType>userEventActivation</flowable:eventType>\n</extensionElements>","handlingStrategy":"validation","validationCode":"Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(cmmnFile); // pre-parse to catch malformed eventType extension markup","typeGuard":null,"tryCatchPattern":"try {\n    cmmnModel = converter.convertToCmmnModel(stream, encoding);\n} catch (FlowableException e) {\n    if (\"Error while reading eventType element\".equals(e.getMessage())) {\n        // repair the eventType element per the cause XMLStreamException\n    }\n    throw e;\n}","preventionTips":["Validate extension element markup (especially eventType) before conversion.","Keep eventType values within the set your Flowable version supports for case start events.","Confirm file completeness/encoding after moving CMMN assets across systems."],"tags":["cmmn","xml","event-type"],"backgroundTag":"schema-validation-failed","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"}