flowable/flowable-engine · error · FlowableException

Error while reading eventType element

Error message

Error while reading eventType element

What it means

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.

Solutions

  1. Fix the XML around the eventType element (well-formed tags, valid nesting inside extensionElements).
  2. Use a supported eventType value and element format matching your Flowable version's extension schema.
  3. Validate the whole CMMN document against the XSD to catch structural issues before conversion.

Example fix

<!-- before -->
<extensionElements>
  <flowable:eventType>user_join</flowable:eventType>
</extensionElements>
<!-- after (well-formed, schema-compliant) -->
<extensionElements>
  <flowable:eventType>userEventActivation</flowable:eventType>
</extensionElements>
Defensive patterns

Strategy: validation

Validate before calling

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(cmmnFile); // pre-parse to catch malformed eventType extension markup

Try / catch

try {
    cmmnModel = converter.convertToCmmnModel(stream, encoding);
} catch (FlowableException e) {
    if ("Error while reading eventType element".equals(e.getMessage())) {
        // repair the eventType element per the cause XMLStreamException
    }
    throw e;
}

Prevention

When it happens

Trigger: CmmnXmlUtil.parseExtensionElement(xtr) or getElementText() throws while parsing the <eventType>/<flowable:eventType> element: malformed XML, unclosed tags, or invalid stream state.

Common situations: Hand-written start-event extensions with invalid markup; case files produced by tools emitting a non-standard eventType element; truncated files.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11). Data as JSON: /api/errors/8eb4e246a5c17825. Report an issue: GitHub.

Appendix: source

Thrown at modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/ExtensionElementsXMLConverter.java:417

        } else if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_DELEGATE_EXPRESSION))) {
            handler.setImplementation(xtr.getAttributeValue(null, ATTRIBUTE_DELEGATE_EXPRESSION));
            handler.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
        }
    }

    protected void readEventType(XMLStreamReader xtr, ConversionHelper conversionHelper) {
        CmmnElement currentCmmnElement = conversionHelper.getCurrentCmmnElement();

        String eventType = null;
        try {

            // Parsing and storing as an extension element, which means the export will work automatically
            ExtensionElement extensionElement = CmmnXmlUtil.parseExtensionElement(xtr);
            eventType = extensionElement.getElementText();
            
        } catch (Exception e) {
            throw new FlowableException("Error while reading eventType element", e);
        }

        if (currentCmmnElement instanceof Case caze) {
            caze.setStartEventType(eventType);

        } else if (currentCmmnElement instanceof SendEventServiceTask sendEventServiceTask) {
            sendEventServiceTask.setEventType(eventType);

        } else if (currentCmmnElement instanceof GenericEventListener genericEventListener) {
            genericEventListener.setEventType(eventType);

        } else {
            LOGGER.warn("Unsupported eventType detected for element {}", currentCmmnElement);
        }
    }

    protected void readVariableAggregationDefinition(XMLStreamReader xtr, ConversionHelper conversionHelper) {
        CmmnElement currentCmmnElement = conversionHelper.getCurrentCmmnElement();

View on GitHub (pinned to d6d39ce1c6)