apache/seatunnel · error · SeaTunnelRuntimeException

COMMON-17

COMMON-17

Error message

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

What it means

TablestoreTypeMapper.mapping() converts an Alibaba Tablestore column type to a SeaTunnel type during reading. Only a fixed set of TABLESTORE_* constants is supported; TABLESTORE_UNKNOWN or unrecognized types hit the default branch and throw CommonError.convertToSeaTunnelTypeError with the column name from metadata.

Source

Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/tablestore/TablestoreTypeMapper.java:73

        String tablestoreServerType = metadata.getColumnTypeName(colIndex).toUpperCase();
        switch (tablestoreServerType) {
            case TABLESTORE_BOOL:
                return BasicType.BOOLEAN_TYPE;
            case TABLESTORE_BIGINT:
                return BasicType.LONG_TYPE;
            case TABLESTORE_DOUBLE:
                return BasicType.DOUBLE_TYPE;
            case TABLESTORE_VARCHAR:
            case TABLESTORE_MEDIUMTEXT:
                return BasicType.STRING_TYPE;
            case TABLESTORE_VARBINARY:
            case TABLESTORE_MEDIUMBLOB:
                return PrimitiveByteArrayType.INSTANCE;
                // Doesn't support yet
            case TABLESTORE_UNKNOWN:
            default:
                final String jdbcColumnName = metadata.getColumnName(colIndex);
                throw CommonError.convertToSeaTunnelTypeError(
                        DatabaseIdentifier.TABLE_STORE, tablestoreServerType, jdbcColumnName);
        }
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Ensure attribute columns have standard supported types (INTEGER/DOUBLE/BOOLEAN/STRING/BINARY) when designing the table or writing data.
  2. Exclude the unsupported attribute column from the read schema.
  3. Upgrade the connector version in case newer mappings exist.
  4. Extend TablestoreTypeMapper with a mapping case if the type can be safely represented.

Example fix

// before: attribute col with unsupported server type
// after: write/convert the column as STRING on the Tablestore side, then re-read
Defensive patterns

Strategy: validation

Validate before calling

// Before reading, confirm attribute column types are supported
// Supported: INTEGER, DOUBLE, BOOLEAN, STRING, BINARY
// Inspect via Tablestore DescribeTable / data samples for each attribute column

Try / catch

try {
    sourceReader.read();
} catch (SeaTunnelRuntimeException e) {
    if (e.getMessage().contains("unsupported convert type")) {
        // exclude/normalize the named column, then retry
    } else { throw e; }
}

Prevention

When it happens

Trigger: Reading a Tablestore table whose column type resolves to TABLESTORE_UNKNOWN or an otherwise unmapped server type during schema conversion.

Common situations: Schemaless Tablestore tables where inferred column types are unusual; newer Tablestore types not known to the connector version; mixed-type attribute columns.

Related errors


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