{"record":{"id":"87bd8151aee26773","repo":"apache/seatunnel","slug":"common-17-87bd81","errorCode":"COMMON-17","errorMessage":"'${identifier}' unsupported convert type '${dataType}' of '${field}' to SeaTunnel data type.","messagePattern":"'(.+?)' unsupported convert type '(.+?)' of '(.+?)' to SeaTunnel data type\\.","errorType":"error_code","errorClass":"SeaTunnelRuntimeException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/snowflake/SnowflakeTypeConverter.java","lineNumber":184,"sourceCode":"                builder.dataType(LocalTimeType.LOCAL_DATE_TYPE);\n                break;\n            case SNOWFLAKE_TIME:\n                builder.dataType(LocalTimeType.LOCAL_TIME_TYPE);\n                builder.scale(9);\n                break;\n            case SNOWFLAKE_DATE_TIME:\n            case SNOWFLAKE_TIMESTAMP:\n            case SNOWFLAKE_TIMESTAMP_NTZ:\n                builder.dataType(LocalTimeType.LOCAL_DATE_TIME_TYPE);\n                builder.scale(9);\n                break;\n            case SNOWFLAKE_TIMESTAMP_LTZ:\n            case SNOWFLAKE_TIMESTAMP_TZ:\n                builder.dataType(LocalTimeType.OFFSET_DATE_TIME_TYPE);\n                builder.scale(9);\n                break;\n            default:\n                throw CommonError.convertToSeaTunnelTypeError(\n                        DatabaseIdentifier.SNOWFLAKE, dataType, typeDefine.getName());\n        }\n        return builder.build();\n    }\n\n    @Override\n    public BasicTypeDefine reconvert(Column column) {\n        BasicTypeDefine.BasicTypeDefineBuilder builder =\n                BasicTypeDefine.builder()\n                        .name(column.getName())\n                        .nullable(column.isNullable())\n                        .comment(column.getComment())\n                        .defaultValue(column.getDefaultValue());\n        switch (column.getDataType().getSqlType()) {\n            case TINYINT:\n            case SMALLINT:\n                builder.columnType(SNOWFLAKE_SMALLINT);\n                builder.dataType(SNOWFLAKE_SMALLINT);","sourceCodeStart":166,"sourceCodeEnd":202,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/snowflake/SnowflakeTypeConverter.java#L166-L202","documentation":"SnowflakeTypeConverter.convert() maps a Snowflake source column type (typeDefine, e.g. from DESCRIBE/metadata) to a SeaTunnel data type. Unknown/unmapped Snowflake type strings hit the switch's default branch and throw CommonError.convertToSeaTunnelTypeError. The source cannot read that column into the SeaTunnel type system.","triggerScenarios":"Reading a Snowflake table whose column type string is not among the handled SNOWFLAKE_* constants (e.g. VARIANT, OBJECT, ARRAY, GEOGRAPHY, or a custom/alias type) during catalog/table schema conversion.","commonSituations":"Semi-structured Snowflake columns (VARIANT/OBJECT/ARRAY) in a source table; newer Snowflake types not supported by the connector version; type aliases resolving to unexpected strings in metadata.","solutions":["Cast the column to a supported type in the Snowflake SQL query/table view, e.g. SELECT CAST(v AS STRING) AS v FROM t.","Create a view over the table that exposes only supported column types and read from the view.","Exclude the semi-structured column from the query (SELECT only needed columns).","Upgrade the connector/SeaTunnel version in case newer mappings were added; otherwise add a mapping case for the type."],"exampleFix":"// before: SELECT * FROM raw_events (contains VARIANT col)\n// after\nSELECT event_id, CAST(payload AS STRING) AS payload_str FROM raw_events","handlingStrategy":"validation","validationCode":"-- Run before the job to find unsupported Snowflake columns\nSELECT column_name, data_type\nFROM information_schema.columns\nWHERE table_name = 'MY_TABLE'\n  AND data_type NOT IN ('NUMBER','DECIMAL','NUMERIC','INT','INTEGER','BIGINT','SMALLINT',\n                        'FLOAT','FLOAT8','DOUBLE','REAL','VARCHAR','CHAR','CHARACTER',\n                        'STRING','TEXT','BOOLEAN','DATE','TIME','TIMESTAMP_NTZ',\n                        'TIMESTAMP_LTZ','TIMESTAMP_TZ','BINARY','VARBINARY');","typeGuard":null,"tryCatchPattern":"try {\n    sourceReader.read();\n} catch (SeaTunnelRuntimeException e) {\n    if (e.getMessage().contains(\"unsupported convert type\")) {\n        // rewrite query with CAST for the named column, then retry\n    } else { throw e; }\n}","preventionTips":["Avoid VARIANT/OBJECT/ARRAY columns in tables read by SeaTunnel, or expose CASTed views.","Check information_schema for column types before adding new tables to pipelines.","Pin and test the connector version against your Snowflake account's types.","Prefer explicit column lists over SELECT *."],"tags":["jdbc","snowflake","type-conversion","source","unsupported-type"],"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"}