{"record":{"id":"e66376c0c00d7de7","repo":"apache/flink","slug":"not-support-to-parse-type-s","errorCode":null,"errorMessage":"Not support to parse type: %s","messagePattern":"Not support to parse type: (.+?)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/RowDataToJsonConverters.java","lineNumber":158,"sourceCode":"            case ARRAY:\n                return createArrayConverter((ArrayType) type);\n            case MAP:\n                MapType mapType = (MapType) type;\n                return createMapConverter(\n                        mapType.asSummaryString(), mapType.getKeyType(), mapType.getValueType());\n            case MULTISET:\n                MultisetType multisetType = (MultisetType) type;\n                return createMapConverter(\n                        multisetType.asSummaryString(),\n                        multisetType.getElementType(),\n                        new IntType());\n            case ROW:\n                return createRowConverter((RowType) type);\n            case VARIANT:\n                return this::convertVariant;\n            case RAW:\n            default:\n                throw new UnsupportedOperationException(\"Not support to parse type: \" + type);\n        }\n    }\n\n    private RowDataToJsonConverter createDecimalConverter() {\n        return (mapper, reuse, value) -> {\n            BigDecimal bd = ((DecimalData) value).toBigDecimal();\n            return mapper.getNodeFactory()\n                    .numberNode(\n                            mapper.isEnabled(WRITE_BIGDECIMAL_AS_PLAIN)\n                                    ? bd\n                                    : bd.stripTrailingZeros());\n        };\n    }\n\n    private JsonNode convertVariant(ObjectMapper mapper, JsonNode reuse, Object value) {\n        try {\n            return mapper.readTree(((Variant) value).toJson());\n        } catch (IOException e) {","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/apache/flink/blob/2f3c205e9266cb30240eb7f4fdab15cad629a70f/flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/RowDataToJsonConverters.java#L140-L176","documentation":"Thrown by RowDataToJsonConverters.createConverter when it encounters a logical type with no JSON serialization case, notably RAW and any type not in the switch. The JSON serialization format simply has no representation for these types, so converter construction fails. This happens at schema setup time, before any record is serialized.","triggerScenarios":"Using format 'json' (or a connector writing JSON such as Kafka sink) with a column of type RAW, or an unrecognized/custom LogicalType. Throws when JsonRowDataSerializationSchema builds its converters, i.e. at operator open/job startup.","commonSituations":"Carrying RAW-typed internal objects (e.g. custom classes) through a pipeline that ends in a JSON sink; internal/advanced types leaking into a sink schema; third-party type-system extensions without a JSON mapping.","solutions":["Remove the RAW column from the sink schema or project it away before the JSON sink","Convert the RAW value to a JSON-compatible representation (STRING via toString or a proper serializer) in a UDF/map before writing","Replace RAW with a concrete supported type (STRING, BYTES) in the intermediate schema"],"exampleFix":"// before\nCREATE TABLE out (payload RAW<...>, ...) WITH ('connector'='kafka', 'format'='json');\n\n// after\nCREATE TABLE out (payload STRING, ...) WITH ('connector'='kafka', 'format'='json');\n-- and serialize the object to a string upstream","handlingStrategy":"type-guard","validationCode":"Set<LogicalTypeRoot> unsupported = EnumSet.of(LogicalTypeRoot.RAW);\nfor (LogicalType t : rowType.getChildren()) {\n    if (unsupported.contains(t.getTypeRoot())) throw new IllegalArgumentException(\"JSON sink cannot write \" + t);\n}","typeGuard":"static boolean jsonSerializable(LogicalType t) {\n    return t.getTypeRoot() != LogicalTypeRoot.RAW;\n}","tryCatchPattern":null,"preventionTips":["Never route RAW-typed columns to a JSON sink","Project away internal columns before the sink","Lint sink schemas in CI"],"tags":["json","raw-type","serialization","schema","startup"],"backgroundTag":null,"analyzedSha":"2f3c205e9266cb30240eb7f4fdab15cad629a70f","analyzedAt":"2026-08-14T08:48:24.518Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}