apache/seatunnel · error · KuduConnectorException
UNSUPPORTED_DATA_TYPE
UNSUPPORTED_DATA_TYPE
Error message
Doesn't support KUDU type '%s' .
What it means
KuduTypeMapper.mapping() translates Kudu column types to SeaTunnel types. Any Kudu type not in the handled switch (e.g. unexpected or newly added Kudu types) triggers KuduConnectorException with UNSUPPORTED_DATA_TYPE. It means the connector cannot map this column type to a SeaTunnel type.
Source
Thrown at seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/kuduclient/KuduTypeMapper.java:70
case INT64:
return BasicType.LONG_TYPE;
case DECIMAL:
ColumnTypeAttributes typeAttributes =
columnSchemaList.get(colIndex).getTypeAttributes();
return new DecimalType(typeAttributes.getPrecision(), typeAttributes.getScale());
case FLOAT:
return BasicType.FLOAT_TYPE;
case DOUBLE:
return BasicType.DOUBLE_TYPE;
case STRING:
return BasicType.STRING_TYPE;
case UNIXTIME_MICROS:
return LocalTimeType.LOCAL_DATE_TIME_TYPE;
case BINARY:
return PrimitiveByteArrayType.INSTANCE;
default:
throw new KuduConnectorException(
CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
String.format("Doesn't support KUDU type '%s' .", kuduType));
}
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Check the Kudu table schema for unsupported column types
- Alter the table or exclude unsupported columns from the read
- Upgrade SeaTunnel to a version supporting the type
- Extend KuduTypeMapper if the type can be reasonably mapped
Defensive patterns
Strategy: type-guard
Validate before calling
// Before reading, inspect the Kudu schema and reject unsupported types:
for (ColumnSchema col : kuduTable.getSchema().getColumns()) {
switch (col.getType()) {
case STRING: case INT*: case UNIXTIME_MICROS: case BINARY: /* supported */ break;
default: throw new IllegalStateException("Unsupported Kudu type: " + col.getType());
}
} Type guard
// Java guard
boolean isSupportedKuduType(KuduType t) {
return t == KuduType.STRING || t == KuduType.UNIXTIME_MICROS || t == KuduType.BINARY /* + handled numerics */;
} Try / catch
try { catalogTable = catalog.getTable(path); } catch (KuduConnectorException e) {
if ("UNSUPPORTED_DATA_TYPE".equals(e.getSeaTunnelErrorCode())) { /* exclude/alter column */ }
} Prevention
- Check table schema types before ingesting with SeaTunnel
- Avoid nested struct/map columns with exotic element types
- Keep the connector version aligned with your Kudu types
When it happens
Trigger: Reading a Kudu table whose schema contains a column type outside the supported set handled by the mapper's switch statement; reached via mapping() and its recursive calls for struct/map types.
Common situations: Tables created with newer Kudu types or exotic nested types (structs/maps containing unmappable element types); schema drift after the job config was written.
Related errors
- UNSUPPORTED_DATA_TYPE
- Unsupported Vitess catalog SQL type:
- seaTunnelDataType cannot be null
- UNSUPPORTED_DATA_TYPE
- EZS_FIELD_TYPE_NOT_SUPPORT
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/11f5d9f2904d8104.
Report an issue: GitHub.