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

  1. Check the format value in the source config against formats supported by connector-amazonsqs (see AmazonSqsSourceFactory option definition)
  2. Fix spelling/casing of the format value in the job config
  3. Upgrade SeaTunnel if the desired format is supported only in a newer version
  4. 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

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


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/519363b601fa7ff5. Report an issue: GitHub.