flowable/flowable-engine · error · FlowableException
Unsupported import type
Error message
Unsupported import type '%s' (import type)
What it means
Flowable throws this from WebServiceActivityBehavior.fillImporterInfo when a BPMN <import> element's importType is not 'wsdl' (and the location is not treated as WSDL). The web-service activity behavior only knows how to build a WSDL importer; anything else is rejected at BPMN parse time. The exception aborts parsing of the process containing the web-service task.
Solutions
- Set importType on the <import> element to the WSDL namespace: http://schemas.xmlsoap.org/wsdl/
- Point the import's location attribute at the actual WSDL document URL of the service
- Remove the <import> element entirely if the web-service task does not need it and pass the WSDL location directly on the task
- If a non-WSDL import is genuinely required, it is unsupported by this behavior — implement a custom ServiceTask behavior instead
Example fix
<!-- before --> <import importType="xsd" location="http://example.com/service?wsdl" /> <!-- after --> <import importType="http://schemas.xmlsoap.org/wsdl/" location="http://example.com/service?wsdl" />
Defensive patterns
Strategy: validation
Validate before calling
String type = importElement.getImportType();
if (!"http://schemas.xmlsoap.org/wsdl/".equals(type)) {
throw new IllegalArgumentException("Only WSDL importType is supported, got: " + type);
} Prevention
- Always use importType="http://schemas.xmlsoap.org/wsdl/" for web-service imports in BPMN
- Validate BPMN files with the Flowable modeler/schema validation before deploying
- Copy import elements only from working Flowable examples, not generic BPMN samples
When it happens
Trigger: A BPMN XML file defines a <serviceTask> with <import importType="..."> where importType is anything other than the supported WSDL type (e.g. 'http://schemas.xmlsoap.org/wsdl/', misspelled, or 'xsd'). Hit during process definition parsing via fillDefinitionMaps.
Common situations: Hand-written or tool-generated BPMN copied from non-Flowable examples; typos in the importType attribute; attempting to import an XSD or other schema instead of a WSDL; modeling tools emitting import elements for other import types.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Error importing ' ' as
- Error importing ' ' as ' ' (import location, import type)
- Unsupported flow element type + flowElement + in + execution
- Unsupported flow element type
- Unsupported import type
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/af461a2a86a329eb.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/WebServiceActivityBehavior.java:286
XMLImporter importerInstance = processEngineConfig.getWsdlImporterFactory()
.createXMLImporter(theImport);
xmlImporterMap.put(theImport.getNamespace(), importerInstance);
importerInstance.importFrom(theImport, sourceSystemId);
structureDefinitionMap.putAll(importerInstance.getStructures());
wsServiceMap.putAll(importerInstance.getServices());
wsOperationMap.putAll(importerInstance.getOperations());
} catch (FlowableException e) {
throw e;
} catch (Exception e) {
throw new FlowableException(String.format("Error importing '%s' as '%s'", theImport.getLocation(),
theImport.getImportType()), e);
}
} else {
throw new FlowableException(String.format("Unsupported import type '%s'", theImport.getImportType()));
}
}
}
protected void returnMessage(List<DataAssociation> dataOutputAssociations, DelegateExecution execution) {
for (DataAssociation dataAssociationElement : dataOutputAssociations) {
AbstractDataAssociation dataAssociation = createDataOutputAssociation(dataAssociationElement);
dataAssociation.evaluate(execution);
}
}
protected void fillMessage(List<DataAssociation> dataInputAssociations, DelegateExecution execution) {
for (DataAssociation dataAssociationElement : dataInputAssociations) {
AbstractDataAssociation dataAssociation = createDataInputAssociation(dataAssociationElement);
dataAssociation.evaluate(execution);
}
}
View on GitHub (pinned to d6d39ce1c6)