apache/seatunnel · error · SeaTunnelRuntimeException
COMMON-17
COMMON-17
Error message
'${identifier}' unsupported convert type '${dataType}' of '${field}' to SeaTunnel data type. What it means
YashanDB dialect type converter's convert() throws this when a YashanDB column type string has no mapping to a SeaTunnel data type. The default branch of the type switch is reached for YashanDB types (or VECTOR variants) that the converter does not recognize, so it refuses to guess a SeaTunnel type.
Solutions
- Identify the offending type from the error's dataType field and check the source table schema
- Cast the column to a supported type in the SQL query (e.g. TO_CHAR / NUMBER)
- Upgrade the connector version which may add the missing mapping
- Add a case for the missing type in YashanDbTypeConverter.convert()
Example fix
-- before: SELECT special_col FROM t -- after SELECT CAST(special_col AS VARCHAR(4000)) AS special_col FROM t
Defensive patterns
Strategy: try-catch
Try / catch
try {
CatalogColumn col = yashanConverter.convert(typeDefine);
} catch (SeaTunnelConvertException e) {
LOG.warn("Unmapped YashanDB type {} for column {}", typeDefine.getColumnType(), typeDefine.getName());
// fallback: map to STRING type manually
} Prevention
- Fallback-map unknown types to STRING only when data can be represented as text
When it happens
Trigger: Calling YashanDbTypeConverter.convert() (via fromConnectorType/toSeaTunnelType) with a yashanType string not covered by the switch — e.g. an exotic or newer YashanDB data type.
Common situations: Reading a YashanDB table containing a newer or uncommon data type; YashanDB server version newer than the connector's supported type list; user-defined or domain types.
Related errors
- COMMON-19
- The column with type ARRAY will be converted to VECTOR in…
- The column with type will be converted to VECTOR in YashanDB
- The decimal column type decimal( , ) is out of range, which…
- The decimal column type decimal( , ) is out of range, which…
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/ac4230cf691f2164.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverter.java:308
if (typeDefine.getScale() == null) {
builder.scale(TIMESTAMP_DEFAULT_SCALE);
} else {
builder.scale(typeDefine.getScale());
}
break;
// ====================== Interval types (as STRING) ======================
case INTERVAL_YEAR_TO_MONTH:
case INTERVAL_DAY_TO_SECOND:
builder.dataType(BasicType.STRING_TYPE);
break;
case VECTOR_NAME:
builder.dataType(VectorType.VECTOR_FLOAT_TYPE);
builder.scale(typeDefine.getScale());
builder.columnLength(typeDefine.getLength());
break;
default:
throw CommonError.convertToSeaTunnelTypeError(
DatabaseIdentifier.YASHANDB, yashanType, typeDefine.getName());
}
return builder.build();
}
@Override
public BasicTypeDefine<?> reconvert(Column column) {
BasicTypeDefine.BasicTypeDefineBuilder<?> builder =
BasicTypeDefine.builder()
.name(column.getName())
.nullable(column.isNullable())
.comment(column.getComment())
.defaultValue(column.getDefaultValue());
switch (column.getDataType().getSqlType()) {
case BOOLEAN:
builder.columnType(BOOLEAN);
builder.dataType(BOOLEAN);
break;View on GitHub (pinned to cf67b549a7)