apache/seatunnel · error · SeaTunnelRuntimeException

COMMON-17

COMMON-17

Error message

'${identifier}' unsupported convert type '${dataType}' of '${field}' to SeaTunnel data type.

What it means

StarRocksTypeConverter.convert() maps a StarRocks column type definition (BasicTypeDefine<StarRocksType>) to a SeaTunnel data type. The switch over StarRocksType handles BOOLEAN/TINYINT.../DATETIME/ARRAY/MAP etc.; any StarRocks type outside that set hits the default branch and throws this error with the connector identifier, the column type string, and the column name.

Source

Thrown at seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksTypeConverter.java:175

            case SR_JSON:
                builder.dataType(BasicType.STRING_TYPE);
                builder.columnLength(MAX_STRING_LENGTH);
                break;
            case SR_DATE:
                builder.dataType(LocalTimeType.LOCAL_DATE_TYPE);
                break;
            case SR_DATETIME:
                builder.dataType(LocalTimeType.LOCAL_DATE_TIME_TYPE);
                builder.scale(typeDefine.getScale() == null ? 0 : typeDefine.getScale());
                break;
            case SR_ARRAY:
                convertArray(typeDefine.getColumnType(), builder, typeDefine.getName());
                break;
            case SR_MAP:
                convertMap(typeDefine.getColumnType(), builder, typeDefine.getName());
                break;
            default:
                throw CommonError.convertToSeaTunnelTypeError(
                        identifier(), typeDefine.getColumnType(), typeDefine.getName());
        }
        return builder.build();
    }

    @Override
    public BasicTypeDefine<StarRocksType> reconvert(Column column) {
        BasicTypeDefine.BasicTypeDefineBuilder<StarRocksType> builder =
                BasicTypeDefine.<StarRocksType>builder()
                        .name(column.getName())
                        .nullable(column.isNullable())
                        .comment(column.getComment())
                        .defaultValue(column.getDefaultValue());
        switch (column.getDataType().getSqlType()) {
            case NULL:
                builder.columnType(SR_NULL);
                builder.dataType(SR_NULL);
                break;

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Remove or exclude the offending column from the read (select only supported columns in your query/catalog config).
  2. Cast the column in StarRocks to a supported type (e.g. CAST(bitmap_col AS STRING)) in a view and read the view instead.
  3. Upgrade SeaTunnel to a version whose StarRocksTypeConverter supports the column type.
  4. Add a case for the missing StarRocksType in convert() if you control the build.

Example fix

// before
CREATE TABLE t (tags HLL HLL_UNION ...); -- read directly
// after
CREATE VIEW t_view AS SELECT CAST(user_id AS BIGINT) AS user_id, ... -- exclude/cast unsupported columns
Defensive patterns

Strategy: validation

Validate before calling

// inspect the StarRocks table schema before reading
// via mysql client: SHOW CREATE TABLE t;  or DESCRIBE t;
// exclude or CAST unsupported columns (HLL, BITMAP, JSON on old versions, nested arrays) in a view
CREATE VIEW t_supported AS SELECT CAST(col AS STRING) AS col, ... FROM t;

Try / catch

try {
    StarRocksCatalog catalog = ...;
    catalog.getTable(schema, table);
} catch (Exception e) {
    LOG.error("StarRocks table has columns not convertible to SeaTunnel types; cast/exclude them: {}", e.getMessage());
    throw e;
}

Prevention

When it happens

Trigger: Catalog/schema reading reads a StarRocks column whose type (typeDefine.getColumnType() / getDataType()) resolves to a StarRocksType constant not covered by convert()'s switch — e.g. unsupported StarRocks native types like HLL, BITMAP, or newly added StarRocks types when reading an existing table's schema.

Common situations: Source reads a StarRocks table containing HLL/BITMAP/unsupported aggregate-type columns; a table was created with a newer StarRocks type that this SeaTunnel version's converter does not know; catalog-based schema discovery enumerates all columns including ones you do not intend to read.

Related errors


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