apache/seatunnel · error · SeaTunnelRuntimeException
COMMON-19
COMMON-19
Error message
'${identifier}' unsupported convert SeaTunnel data type '${dataType}' of '${field}' to connector data type. What it means
YashanDB dialect type converter's reconvert() throws this when a SeaTunnel data type has no corresponding YashanDB column type. The default branch of the SqlType switch rejects SeaTunnel types (e.g. TIME, MAP, ROW) that cannot be expressed as a YashanDB column type when generating DDL.
Solutions
- Transform the unsupported column upstream (e.g. convert TIME to TIMESTAMP or string) before writing to YashanDB
- Exclude the column from the sink table creation
- Extend reconvert() with a mapping for the missing SqlType
Example fix
// before: sink receives SeaTunnel TIME column
// after: transform in config
transform {
Sql {
source_table_name = "src"
result_table_name = "dst"
query = "SELECT CAST(time_col AS TIMESTAMP) AS time_col, ... FROM src"
}
} Defensive patterns
Strategy: try-catch
Try / catch
try {
CatalogColumn col = yashanConverter.reconvert(column);
} catch (SeaTunnelConvertException e) {
LOG.warn("SeaTunnel type {} cannot map to YashanDB for column {}", column.getDataType().getSqlType(), column.getName());
// fallback: pre-transform column type before reconvert
} Prevention
- Handle conversion failure per-column so one bad column does not abort the whole table creation
When it happens
Trigger: Calling YashanDbTypeConverter.reconvert() on a CatalogColumn whose SeaTunnel SqlType hits the switch default — typically TIME, ARRAY, MAP or ROW types during sink table auto-creation.
Common situations: Auto table creation into YashanDB from a source with TIME or nested/complex types; schema evolution propagating an unmapped type to the YashanDB sink.
Related errors
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c37a6b9c5748038f.
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:518
int tsScale = column.getScale();
if (tsScale > MAX_TIMESTAMP_SCALE) {
tsScale = MAX_TIMESTAMP_SCALE;
log.warn(
"The timestamp column {} type timestamp({}) is out of range, "
+ "which exceeds the maximum scale of {}, "
+ "it will be converted to timestamp({})",
column.getName(),
column.getScale(),
MAX_TIMESTAMP_SCALE,
tsScale);
}
builder.columnType(String.format("TIMESTAMP(%s) WITH TIME ZONE", tsScale));
builder.scale(tsScale);
}
builder.dataType(TIMESTAMP_WITH_TIME_ZONE);
break;
default:
throw CommonError.convertToConnectorTypeError(
DatabaseIdentifier.YASHANDB,
column.getDataType().getSqlType().name(),
column.getName());
}
return builder.build();
}
}
View on GitHub (pinned to cf67b549a7)