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
- Remove or exclude the offending column from the read (select only supported columns in your query/catalog config).
- Cast the column in StarRocks to a supported type (e.g. CAST(bitmap_col AS STRING)) in a view and read the view instead.
- Upgrade SeaTunnel to a version whose StarRocksTypeConverter supports the column type.
- 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
- Run DESCRIBE/SHOW CREATE TABLE and confirm every column type is supported before connecting a StarRocks source
- Avoid reading HLL/BITMAP columns; use aggregate views exposing primitives instead
- Read from views that CAST unsupported columns to STRING
- Keep SeaTunnel version in sync with the StarRocks server version's type set
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
- COMMON-19
- COMMON-19
- The decimal column {} type decimal({},{}) is out of range, w
- TABLE_SCHEMA_GET_FAILED
- ROW type requires non-empty field names and types with equal
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/9fd812f3e58fa688.
Report an issue: GitHub.