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
RedshiftTypeConverter.reconvert() throws this when reverse-mapping a SeaTunnel column to a Redshift type; after handling local cases it delegates to super.reconvert, and any failure is rethrown as CommonError.convertToConnectorTypeError with DatabaseIdentifier.REDSHIFT. Types unsupported by both the Redshift switch and the base converter trigger it.
Source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/redshift/RedshiftTypeConverter.java:403
column.getScale(),
MAX_TIMESTAMP_SCALE,
timestampTzScale);
}
builder.columnType(REDSHIFT_TIMESTAMPTZ);
builder.dataType(REDSHIFT_TIMESTAMPTZ);
builder.scale(timestampTzScale);
break;
case MAP:
case ARRAY:
case ROW:
builder.columnType(REDSHIFT_SUPER);
builder.dataType(REDSHIFT_SUPER);
break;
default:
try {
return super.reconvert(column);
} catch (SeaTunnelRuntimeException e) {
throw CommonError.convertToConnectorTypeError(
DatabaseIdentifier.REDSHIFT,
column.getDataType().getSqlType().name(),
column.getName());
}
}
return builder.build();
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Pre-create the Redshift table (e.g. use SUPER for complex data) and disable auto-create-table
- Convert complex columns to strings/JSON before the sink
- Extend RedshiftTypeConverter.reconvert to map the type (e.g. to SUPER)
Example fix
// before: auto-create with MAP column
// after: convert to JSON string then map to SUPER
source/transform produce JSON strings; sink { Jdbc { auto_create_table = false } } Defensive patterns
Strategy: validation
Validate before calling
// Ensure all sink columns have Redshift mappings before auto-create:
for (CatalogColumn col : schema.getColumns()) {
SqlType t = col.getDataType().getSqlType();
if (t == SqlType.MAP || t == SqlType.ROW) {
throw new IllegalStateException("Pre-create SUPER column for: " + col.getName());
}
} Try / catch
try {
return super.reconvert(column);
} catch (SeaTunnelRuntimeException e) {
LOG.warn("No Redshift mapping for {}: {}", column.getDataType(), e.getMessage());
// pre-create table with SUPER or stringify the column
} Prevention
- Use pre-created SUPER columns for nested data in Redshift
- Convert MAP/ROW to JSON strings before sinking
- Disable auto_create_table when schemas are complex
When it happens
Trigger: Auto-create-table on a Redshift sink where the SeaTunnel column type (e.g. MAP, ROW, certain time/byte types) has no Redshift mapping in either reconvert level — outer default.
Common situations: Sinking complex-type payloads into Redshift with auto-create enabled; Redshift lacks native MAP/ROW so schema generation fails at startup.
Related errors
- COMMON-19
- COMMON-19
- COMMON-17
- The decimal column {} type decimal({},{}) is out of range, w
- The length of string column {} is {}, which exceeds the maxi
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/12fb03aefe5d5abb.
Report an issue: GitHub.