flowable/flowable-engine · error · FlowableEventJsonException
The serializer type is not supported
Error message
The serializer type is not supported ${serializerType} for the channel model with key ${key} What it means
Thrown by the outbound channel validator when a channel has no pipelineDelegateExpression and its serializerType is not one of the supported serializers (json, xml, expression, none). The serializer is only required when the payload transformation is not delegated to a pipeline delegate expression.
Solutions
- Set serializerType to a supported value (json, xml, expression, or none)
- Check for typos in serializerType
- Set pipelineDelegateExpression instead, which makes the serializer unnecessary
- Upgrade Flowable if the serializer type is legitimately supported in a newer version
Example fix
// before
{
"key": "outbound",
"serializerType": "proto"
}
// after
{
"key": "outbound",
"serializerType": "json"
} Defensive patterns
Strategy: validation
Validate before calling
Set<String> supported = Set.of("json", "xml", "expression", "none");
if (isEmpty(channel.getPipelineDelegateExpression()) && !supported.contains(channel.getSerializerType())) {
throw new IllegalArgumentException("Unsupported serializerType '" + channel.getSerializerType() + "'");
} Type guard
boolean hasSupportedSerializer = c -> isSet(c.getPipelineDelegateExpression()) || supportedSerializers.contains(c.getSerializerType());
Try / catch
try {
outboundValidator.validateChannel(model);
} catch (FlowableEventJsonException e) {
logger.error("Unsupported serializer type: {}", e.getMessage());
} Prevention
- Use only serializerType values from the installed Flowable version's supportedSerializers set
- Or set pipelineDelegateExpression to skip built-in serialization entirely
- Pin Flowable versions and re-check channel definitions on upgrades
When it happens
Trigger: validateChannel is called on an OutboundChannelModel where getPipelineDelegateExpression() is empty and getSerializerType() is neither null/empty nor in the supportedSerializers set, e.g. "avro" or a typo like "jso".
Common situations: Typo in serializerType; using a serializer type from a newer Flowable version than the one deployed; omitting a pipelineDelegateExpression while also setting an invalid serializer type.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- The deserializer type is not supported
- A channel key detection value is required for the channel…
- A resource name is mandatory
- An event definition key is mandatory
- Event definition id is null
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/719945b43515e769.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-event-registry-json-converter/src/main/java/org/flowable/eventregistry/json/converter/OutboundChannelModelValidator.java:54
public OutboundChannelModelValidator(Collection<String> supportedSerializers) {
this.supportedSerializers = new HashSet<>(supportedSerializers);
}
@Override
public void validateChannel(ChannelModel channelModel) {
if (channelModel instanceof OutboundChannelModel outboundChannelModel) {
validateChannel(outboundChannelModel);
}
}
protected void validateChannel(OutboundChannelModel outboundChannelModel) {
String serializerType = outboundChannelModel.getSerializerType();
if (StringUtils.isEmpty(outboundChannelModel.getPipelineDelegateExpression()) &&
!supportedSerializers.contains(serializerType)) {
// Serializer is only needed if there is no pipeline delegate expression
throw new FlowableEventJsonException(
"The serializer type is not supported " + serializerType + " for the channel model with key " + outboundChannelModel.getKey());
}
}
}
View on GitHub (pinned to d6d39ce1c6)