{"record":{"id":"1ab05272654fdbc2","repo":"flowable/flowable-engine","slug":"the-deserializer-type-is-not-supported-deseriali","errorCode":null,"errorMessage":"The deserializer type is not supported ${deserializerType} for the channel model with key ${key}","messagePattern":"The deserializer 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/InboundChannelModelValidator.java","lineNumber":76,"sourceCode":"            if (channelEventKeyDetection == null) {\n                throw new FlowableEventJsonException(\"A channel key detection value is required for the channel model with key \" + inboundChannelModel.getKey());\n            }\n\n            if (StringUtils.isEmpty(channelEventKeyDetection.getFixedValue()) &&\n                StringUtils.isEmpty(channelEventKeyDetection.getXmlXPathExpression()) &&\n                StringUtils.isEmpty(channelEventKeyDetection.getDelegateExpression())) {\n                throw new FlowableEventJsonException(\n                    \"The channel xml key detection value was not found for the channel model with key \" + inboundChannelModel.getKey()\n                        + \". One of fixedValue, xmlPathExpression, delegateExpression should be set.\");\n            }\n\n        } else if (\"expression\".equalsIgnoreCase(deserializerType)) {\n            if (StringUtils.isEmpty(inboundChannelModel.getDeserializerDelegateExpression())) {\n                throw new FlowableEventJsonException(\n                    \"The channel deserializer delegate expression was not set for the channel model with key \" + inboundChannelModel);\n            }\n        } else if (deserializerType != null) {\n            throw new FlowableEventJsonException(\n                \"The deserializer type is not supported \" + deserializerType + \" for the channel model with key \" + inboundChannelModel.getKey());\n        }\n    }\n}\n","sourceCodeStart":58,"sourceCodeEnd":81,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-event-registry-json-converter/src/main/java/org/flowable/eventregistry/json/converter/InboundChannelModelValidator.java#L58-L81","documentation":"Thrown when an inbound channel declares a deserializerType other than the supported values json, xml, or expression (null is allowed and skipped). The validator rejects unknown deserializer types at channel deployment/validation time.","triggerScenarios":"validateDeserializer reaches the final else-if because deserializerType is a non-null string not matching json/xml/expression case-insensitively, e.g. \"JSON-wrong\", \"protobuf\", or a typo like \"jso\".","commonSituations":"Typos in deserializerType; using a deserializer type from a different Flowable module or a custom type that requires registration; copy-paste from unrelated configuration.","solutions":["Set deserializerType to one of: json, xml, or expression","Check for typos and casing (matching is case-insensitive, so JSON/json both work)","Remove deserializerType entirely if deserialization is handled elsewhere (null is permitted)"],"exampleFix":"// before\n\"deserializerType\": \"protobuf\"\n// after\n\"deserializerType\": \"json\"","handlingStrategy":"validation","validationCode":"Set<String> supported = Set.of(\"json\", \"xml\", \"expression\");\nString t = channel.getDeserializerType();\nif (t != null && !supported.contains(t.toLowerCase())) {\n    throw new IllegalArgumentException(\"Unsupported deserializerType '\" + t + \"' on channel '\" + channel.getKey() + \"'\");\n}","typeGuard":"boolean hasSupportedDeserializer = t -> t == null || Set.of(\"json\",\"xml\",\"expression\").contains(t.toLowerCase());","tryCatchPattern":"try {\n    deployChannel(model);\n} catch (FlowableEventJsonException e) {\n    logger.error(\"Unsupported deserializer type: {}\", e.getMessage());\n}","preventionTips":["Only use json, xml, or expression for deserializerType","Watch letter casing/typos in channel JSON (matching is case-insensitive but spelling must match)","Document the allowed deserializer types in your channel authoring guide"],"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"}