{"record":{"id":"ae773c3c59107336","repo":"apache/seatunnel","slug":"common-19-ae773c","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/iris/IrisTypeConverter.java","lineNumber":428,"sourceCode":"                                        + \"it will be converted to time({})\",\n                                column.getName(),\n                                column.getScale(),\n                                MAX_TIME_SCALE,\n                                timeScale);\n                    }\n                    builder.columnType(String.format(\"%s(%s)\", IRIS_TIME, timeScale));\n                    builder.scale(timeScale);\n                } else {\n                    builder.columnType(IRIS_TIME);\n                }\n                break;\n            case TIMESTAMP:\n                builder.columnType(IRIS_TIMESTAMP2);\n                builder.dataType(IRIS_TIMESTAMP2);\n                break;\n\n            default:\n                throw CommonError.convertToConnectorTypeError(\n                        DatabaseIdentifier.IRIS,\n                        column.getDataType().getSqlType().name(),\n                        column.getName());\n        }\n        return builder.build();\n    }\n}\n","sourceCodeStart":410,"sourceCodeEnd":436,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/iris/IrisTypeConverter.java#L410-L436","documentation":"Thrown by IrisTypeConverter.reconvert() when a SeaTunnel data type (from the upstream schema) cannot be mapped back to an IRIS column type for sink table creation or write. The default branch in reconvert() covers any SeaTunnel SqlType the IRIS dialect does not support writing. It fails during sink schema preparation, before rows are written.","triggerScenarios":"Writing a SeaTunnel dataset to IRIS whose column SqlType hits the default branch at IrisTypeConverter.java:428 — e.g. SeaTunnel MAP/ARRAY/VECTOR types, or types unsupported by the IRIS dialect in reconvert (only TIMESTAMP etc. shown handled).","commonSituations":"Sink 'auto-create-table' to IRIS from a source producing complex types (e.g. MongoDB nested fields, vector embeddings); schema transformation pipelines outputting types IRIS can't express.","solutions":["Read the SeaTunnel type name from the error '<dataType>' and check IRIS dialect support in IrisTypeConverter.reconvert().","Disable auto table creation and pre-create the IRIS table with an appropriate type, then configure the sink for insert-only.","Insert a Transform (e.g. cast) in the pipeline to convert unsupported columns to supported types (STRING, BYTES, etc.).","Add a reconvert mapping case for the missing SeaTunnel type if it should be supported."],"exampleFix":"// before (config)\nsource: complex source with VECTOR column -> sink: IRIS auto-create\n// after\ntransform: Sql { sql = \"SELECT id, CAST(vec AS STRING) AS vec FROM source\" }","handlingStrategy":"validation","validationCode":"// Validate the SeaTunnel schema before writing to IRIS\nfor (Column col : catalogTable.getTableSchema().toPhysicalRowDataType().getColumns()) {\n    try { new IrisTypeConverter().reconvert(col); }\n    catch (SeaTunnelRuntimeException e) {\n        throw new IllegalStateException(\"IRIS sink cannot map column \" + col.getName() + \" of type \" + col.getDataType());\n    }\n}","typeGuard":"boolean isIrisValidSinkColumn(Column col) {\n    try { new IrisTypeConverter().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(\"Use only IRIS-supported types for sink schema: \" + e.getMessage());\n    }\n    throw e;\n}","preventionTips":["Disable auto-create-table and pre-create IRIS tables with explicit DDL.","Flatten/complex-type sources with a Transform before the IRIS sink.","Keep the pipeline schema limited to scalar SeaTunnel types.","Test schema conversion in a dry-run before production writes."],"tags":["jdbc","type-conversion","iris","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"}