{"record":{"id":"719945b43515e769","repo":"flowable/flowable-engine","slug":"the-serializer-type-is-not-supported-serializert","errorCode":null,"errorMessage":"The serializer type is not supported ${serializerType} for the channel model with key ${key}","messagePattern":"The serializer type is not supported (.+?) for the channel model with key (.+?)","errorType":"validation","errorClass":"FlowableEventJsonException","httpStatus":null,"severity":"error","filePath":"modules/flowable-event-registry-json-converter/src/main/java/org/flowable/eventregistry/json/converter/OutboundChannelModelValidator.java","lineNumber":54,"sourceCode":"\n    public OutboundChannelModelValidator(Collection<String> supportedSerializers) {\n        this.supportedSerializers = new HashSet<>(supportedSerializers);\n    }\n\n    @Override\n    public void validateChannel(ChannelModel channelModel) {\n        if (channelModel instanceof OutboundChannelModel outboundChannelModel) {\n\n            validateChannel(outboundChannelModel);\n        }\n    }\n\n    protected void validateChannel(OutboundChannelModel outboundChannelModel) {\n        String serializerType = outboundChannelModel.getSerializerType();\n        if (StringUtils.isEmpty(outboundChannelModel.getPipelineDelegateExpression()) &&\n            !supportedSerializers.contains(serializerType)) {\n            // Serializer is only needed if there is no pipeline delegate expression\n            throw new FlowableEventJsonException(\n                \"The serializer type is not supported \" + serializerType + \" for the channel model with key \" + outboundChannelModel.getKey());\n        }\n    }\n}\n","sourceCodeStart":36,"sourceCodeEnd":59,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-event-registry-json-converter/src/main/java/org/flowable/eventregistry/json/converter/OutboundChannelModelValidator.java#L36-L59","documentation":"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.","triggerScenarios":"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\".","commonSituations":"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.","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"],"exampleFix":"// before\n{\n  \"key\": \"outbound\",\n  \"serializerType\": \"proto\"\n}\n// after\n{\n  \"key\": \"outbound\",\n  \"serializerType\": \"json\"\n}","handlingStrategy":"validation","validationCode":"Set<String> supported = Set.of(\"json\", \"xml\", \"expression\", \"none\");\nif (isEmpty(channel.getPipelineDelegateExpression()) && !supported.contains(channel.getSerializerType())) {\n    throw new IllegalArgumentException(\"Unsupported serializerType '\" + channel.getSerializerType() + \"'\");\n}","typeGuard":"boolean hasSupportedSerializer = c -> isSet(c.getPipelineDelegateExpression()) || supportedSerializers.contains(c.getSerializerType());","tryCatchPattern":"try {\n    outboundValidator.validateChannel(model);\n} catch (FlowableEventJsonException e) {\n    logger.error(\"Unsupported serializer type: {}\", e.getMessage());\n}","preventionTips":["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"],"tags":["flowable","event-registry","validation","enum","unsupported-value"],"backgroundTag":"invalid-enum-value","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"}