{"record":{"id":"dce4d957d2127460","repo":"apache/seatunnel","slug":"common-19-dce4d9","errorCode":"COMMON-19","errorMessage":"'<identifier>' unsupported convert SeaTunnel data type '<dataType>' of '<field>' to connector data type.","messagePattern":"'<identifier>' unsupported convert SeaTunnel data type '<dataType>' of '<field>' to connector data type\\.","errorType":"error_code","errorClass":"org.apache.seatunnel.common.exception.SeaTunnelRuntimeException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/kingbase/KingbaseTypeConverter.java","lineNumber":226,"sourceCode":"                    byteLength += typeDefine.getLength() % 8 > 0 ? 1 : 0;\n                    builder.columnLength(byteLength);\n                    break;\n                default:\n                    throw CommonError.convertToSeaTunnelTypeError(\n                            DatabaseIdentifier.KINGBASE,\n                            typeDefine.getDataType(),\n                            typeDefine.getName());\n            }\n            return builder.build();\n        }\n    }\n\n    @Override\n    public BasicTypeDefine reconvert(Column column) {\n        try {\n            return super.reconvert(column);\n        } catch (SeaTunnelRuntimeException e) {\n            throw CommonError.convertToConnectorTypeError(\n                    DatabaseIdentifier.KINGBASE,\n                    column.getDataType().getSqlType().name(),\n                    column.getName());\n        }\n    }\n}\n","sourceCodeStart":208,"sourceCodeEnd":233,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/kingbase/KingbaseTypeConverter.java#L208-L233","documentation":"Thrown by KingbaseTypeConverter.reconvert() when a SeaTunnel column type cannot be converted to a Kingbase column type for sink writes/table creation. It delegates to the generic super reconvert and re-wraps any SeaTunnelRuntimeException as a Kingbase-specific COMMON-19 error, so any SeaTunnel SqlType unsupported by the base JDBC conversion produces this.","triggerScenarios":"reconvert(Column) on KingbaseTypeConverter when column.getDataType().getSqlType() has no mapping in super.reconvert() — the catch at KingbaseTypeConverter.java:226 converts it to COMMON-19. Typical for ARRAY/MAP/complex types or types the base converter rejects.","commonSituations":"Auto-creating a Kingbase sink table from sources emitting complex types (nested JSON, arrays); pipelines where the SeaTunnel schema was widened (e.g. TIME with precision) beyond what the base converter supports.","solutions":["Identify the unsupported SeaTunnel SqlType from '<dataType>' in the message.","Pre-create the target Kingbase table and disable sink auto-creation so reconvert isn't invoked for DDL.","Add a Transform to cast unsupported columns to simple types (STRING, INT, etc.) before the sink.","Extend KingbaseTypeConverter.reconvert() with an explicit mapping if the type has a Kingbase equivalent."],"exampleFix":"// before\nsink auto-create with ARRAY column -> error\n// after\ntransform: Sql { sql = \"SELECT id, array_to_string(tags, ',') AS tags FROM source\" }","handlingStrategy":"validation","validationCode":"// Check the SeaTunnel schema is mappable to Kingbase before writing\nfor (Column col : schema.getColumns()) {\n    try { new KingbaseTypeConverter().reconvert(col); }\n    catch (SeaTunnelRuntimeException e) {\n        throw new IllegalStateException(\"Kingbase sink cannot map column \" + col.getName() + \" of \" + col.getDataType());\n    }\n}","typeGuard":"boolean isKingbaseSinkColumnValid(Column col) {\n    try { new KingbaseTypeConverter().reconvert(col); return true; }\n    catch (SeaTunnelRuntimeException e) { return false; }\n}","tryCatchPattern":"try {\n    converter.reconvert(column);\n} catch (SeaTunnelRuntimeException e) {\n    if (e.getMessage().contains(\"unsupported convert SeaTunnel data type\")) {\n        throw new IllegalArgumentException(\"Cast column \" + column.getName() + \" to a basic type before the Kingbase sink\");\n    }\n    throw e;\n}","preventionTips":["Pre-create the Kingbase sink table and disable auto-create.","Cast arrays/maps/nested types to strings with a Transform first.","Keep the sink schema to simple scalar types.","Dry-run schema conversion before production."],"tags":["jdbc","type-conversion","kingbase","sink"],"backgroundTag":"unsupported-dtype","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}