{"record":{"id":"11c8e4ba7ac04949","repo":"apache/seatunnel","slug":"commonerrorcode-unsupported-data-type-11c8e4","errorCode":"CommonErrorCode.UNSUPPORTED_DATA_TYPE","errorMessage":"Unsupported format: %s","messagePattern":"Unsupported format: (.+?)","errorType":"error_code","errorClass":"SeaTunnelJsonFormatException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/PulsarSource.java","lineNumber":289,"sourceCode":"                        false, false, catalogTable.getSeaTunnelRowType());\n            case \"CANAL_JSON\":\n                return new PulsarCanalDecorator(\n                        CanalJsonDeserializationSchema.builder(catalogTable)\n                                .setIgnoreParseErrors(true)\n                                .build());\n            case \"AVRO\":\n                return new AvroDeserializationSchema(catalogTable);\n            case \"TEXT\":\n                return TextDeserializationSchema.builder()\n                        .seaTunnelRowType(catalogTable.getSeaTunnelRowType())\n                        .delimiter(\n                                tableConfig\n                                        .getSchemaConfig()\n                                        .get(PulsarSourceOptions.FIELD_DELIMITER))\n                        .setCatalogTable(catalogTable)\n                        .build();\n            default:\n                throw new SeaTunnelJsonFormatException(\n                        CommonErrorCode.UNSUPPORTED_DATA_TYPE, \"Unsupported format: \" + format);\n        }\n    }\n\n    private void validateBoundedDiscovery() {\n        boolean hasTopicPattern;\n        if (partitionDiscoverer instanceof TopicPatternDiscoverer) {\n            hasTopicPattern = true;\n        } else if (partitionDiscoverer instanceof MultiTablePartitionDiscoverer) {\n            hasTopicPattern =\n                    ((MultiTablePartitionDiscoverer) partitionDiscoverer).hasTopicPattern();\n        } else {\n            hasTopicPattern = false;\n        }\n\n        if (hasTopicPattern\n                && partitionDiscoveryIntervalMs > 0\n                && Boundedness.BOUNDED == getBoundedness()) {","sourceCodeStart":271,"sourceCodeEnd":307,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-pulsar/src/main/java/org/apache/seatunnel/connectors/seatunnel/pulsar/source/PulsarSource.java#L271-L307","documentation":"PulsarSource.createDeserialization switches on the configured format to build the deserialization schema; the default branch throws SeaTunnelJsonFormatException(UNSUPPORTED_DATA_TYPE, \"Unsupported format: ...\") when the format is not one of the supported values.","triggerScenarios":"A table's schema config sets format to an unsupported value (typo, wrong casing, or a format only valid elsewhere like 'parquet'); createConsumerMetadata -> createDeserialization hits default.","commonSituations":"Typo in 'format' under the table's schema config; reusing formats from other connectors; case mismatch ('JSON'); format removed/renamed in a SeaTunnel upgrade.","solutions":["Set format to a supported value (e.g. 'json', 'text', 'canal-json', 'debezium-json' — check PulsarSourceOptions/constants).","Fix casing/spelling of the format string in tables_configs.","If the payload needs an unsupported format, pre-transform it (e.g. via a transform) or use a supported format at the producer side."],"exampleFix":"// before\nsource {\n  Pulsar {\n    schema {\n      format = \"JSON\"\n    }\n  }\n}\n// after\nsource {\n  Pulsar {\n    schema {\n      format = \"json\"\n    }\n  }\n}","handlingStrategy":"validation","validationCode":"Set<String> supported = Set.of(\"json\", \"text\", \"canal-json\", \"debezium-json\");\nif (!supported.contains(format.toLowerCase())) {\n    throw new IllegalArgumentException(\"Unsupported Pulsar source format: \" + format);\n}","typeGuard":null,"tryCatchPattern":"try {\n    DeserializationSchema s = createDeserialization(format, tableConfig, catalogTable);\n} catch (SeaTunnelJsonFormatException e) {\n    log.error(\"Unsupported source format '{}'; check schema.format\", format);\n    throw e;\n}","preventionTips":["Validate schema.format values in tables_configs against supported list.","Use lowercase canonical format names.","Test source deserialization in a small streaming job before production."],"tags":["pulsar","source","deserialization","format"],"backgroundTag":"invalid-enum-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}