apache/seatunnel · error · SeaTunnelJsonFormatException
UNSUPPORTED_DATA_TYPE
UNSUPPORTED_DATA_TYPE
Error message
Unsupported format: ${format} What it means
Amazon SQS source factory builds a deserialization schema from the user-configured 'format' option. The switch over supported formats (JSON, CANAL_JSON, DEBEZIUM_JSON, etc.) has no matching case, so it throws SeaTunnelJsonFormatException with UNSUPPORTED_DATA_TYPE. The format string itself is never echoed into the message, so check your config value directly.
Source
Thrown at seatunnel-connectors-v2/connector-amazonsqs/src/main/java/org/apache/seatunnel/connectors/seatunnel/amazonsqs/source/AmazonSqsSourceFactory.java:143
.delimiter(delimiter)
.build();
break;
case CANAL_JSON:
deserializationSchema =
CanalJsonDeserializationSchema.builder(catalogTable)
.setIgnoreParseErrors(false)
.build();
break;
case DEBEZIUM_JSON:
boolean includeSchema = DEBEZIUM_RECORD_INCLUDE_SCHEMA.defaultValue();
if (config.hasPath(DEBEZIUM_RECORD_INCLUDE_SCHEMA.key())) {
includeSchema = config.getBoolean(DEBEZIUM_RECORD_INCLUDE_SCHEMA.key());
}
deserializationSchema =
new DebeziumJsonDeserializationSchema(catalogTable, false, includeSchema);
break;
default:
throw new SeaTunnelJsonFormatException(
CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
"Unsupported format: " + format);
}
return deserializationSchema;
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Check the format value in the source config against formats supported by connector-amazonsqs (see AmazonSqsSourceFactory option definition)
- Fix spelling/casing of the format value in the job config
- Upgrade SeaTunnel if the desired format is supported only in a newer version
- Implement an extra case in deserializationSchema if adding a new format via a custom build
Example fix
// before format = avro // after format = json
Defensive patterns
Strategy: validation
Validate before calling
// before submitting job
List<String> supported = List.of("json", "canal-json", "debezium-json");
if (!supported.contains(config.getString("format").toLowerCase())) {
throw new IllegalArgumentException("format must be one of " + supported);
} Prevention
- Copy format values only from the connector's documented option list
- Validate job config with the connector's Option definitions before submission
- Pin SeaTunnel version and check format support in that version's docs
When it happens
Trigger: Setting format = <value> in an AmazonSqs source config where <value> is not one of the formats handled by the switch in AmazonSqsSourceFactory.deserializationSchema (e.g. a typo like 'json' vs 'JSON' handling, or an unsupported format like 'avro').
Common situations: Typo in the format HOCON key value; copying a format from another connector that supports more formats (e.g. avro, protobuf); using a format added only in newer SeaTunnel versions while running an older connector build.
Related errors
- UNSUPPORTED_DATA_TYPE
- Invalid endpoint: %s, expected format host:port
- Invalid endpoint port in endpoint: %s
- Failed to parse file modified date format: yyyy-MM-dd HH:mm:
- Hive `table_name` must use `databasePattern.tablePattern` wh
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/519363b601fa7ff5.
Report an issue: GitHub.