apache/seatunnel · error · SeaTunnelTextFormatException

UNSUPPORTED_DATA_TYPE

UNSUPPORTED_DATA_TYPE

Error message

SeaTunnel not support this data type [%s]

What it means

FastLogDeserializationSchema.convert maps Alibaba SLS FastLog fields to Java objects by SeaTunnel SQL type. When the field's SqlType is not one of the handled cases (STRING, INT, BIGINT, DOUBLE, FLOAT, DECIMAL, BOOLEAN, DATE/TIMESTAMP variants, NULL, BYTES), it throws SeaTunnelTextFormatException with code UNSUPPORTED_DATA_TYPE and the unsupported type name. This is a deserialization-time guard: the schema declares a type the SLS converter cannot materialize.

Source

Thrown at seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/serialization/FastLogDeserializationSchema.java:127

                return Byte.parseByte(field);
            case SMALLINT:
                return Short.parseShort(field);
            case INT:
                return Integer.parseInt(field);
            case BIGINT:
                return Long.parseLong(field);
            case FLOAT:
                return Float.parseFloat(field);
            case DOUBLE:
                return Double.parseDouble(field);
            case DECIMAL:
                return new BigDecimal(field);
            case NULL:
                return null;
            case BYTES:
                return field.getBytes(StandardCharsets.UTF_8);
            default:
                throw new SeaTunnelTextFormatException(
                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
                        String.format(
                                "SeaTunnel not support this data type [%s]",
                                fieldType.getSqlType()));
        }
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Change the SLS source schema so the offending column is declared as STRING (or another supported scalar type).
  2. Inspect the error message's [%s] value to identify which SqlType is unsupported, then adjust the schema.
  3. Flatten complex fields to strings upstream (e.g. JSON-encode arrays/maps into a string field) before ingestion.
  4. Upgrade the connector if a newer version added support for the type you need.

Example fix

// before: schema declares an unsupported complex type
schema = {
  tags = array<string>
}
// after: declare as string and JSON-encode content
schema = {
  tags = string
}
Defensive patterns

Strategy: type-guard

Validate before calling

Set<SqlType> SUPPORTED = Set.of(STRING, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, BOOLEAN, DATE, TIMESTAMP, NULL, BYTES);
for (SeaTunnelDataType<?> t : rowType.getFieldTypes()) {
    if (!SUPPORTED.contains(t.getSqlType())) {
        throw new IllegalArgumentException("SLS schema field type not supported: " + t.getSqlType());
    }
}

Type guard

boolean isSlsSupportedType(SeaTunnelDataType<?> t) {
    switch (t.getSqlType()) {
        case STRING: case INT: case BIGINT: case FLOAT: case DOUBLE:
        case DECIMAL: case BOOLEAN: case DATE: case TIMESTAMP: case NULL: case BYTES:
            return true;
        default:
            return false;
    }
}

Try / catch

try {
    Object value = schema.convert(fastLog);
} catch (SeaTunnelTextFormatException e) {
    log.error("Unsupported SLS field type, fix source schema: {}", e.getMessage());
    throw e; // schema problem, not retryable
}

Prevention

When it happens

Trigger: convert/field is invoked on a FastLog field whose resolved SeaTunnelFieldType.getSqlType() falls into the default branch — e.g. MAP, ARRAY, ROW, or other structured/complex types declared in the SLS source schema.

Common situations: SLS log fields auto-detected as complex types; users declaring ARRAY/MAP columns in the seaTunnel schema for log data that only contains scalars; connector version lacking support for a newer SQL type; schema mismatch between the declared SLS source schema and actual log content.

Related errors


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