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

  1. Check the Kudu table schema for unsupported column types
  2. Alter the table or exclude unsupported columns from the read
  3. Upgrade SeaTunnel to a version supporting the type
  4. 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

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


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