{"record":{"id":"5696efcd9f1685d0","repo":"apache/seatunnel","slug":"common-19-5696ef","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":"SeaTunnelRuntimeException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/catalog/ClickhouseTypeConverter.java","lineNumber":173,"sourceCode":"                    ArrayType arrayType = (ArrayType) arrayDataType;\n                    elementType = arrayType.getElementType();\n                }\n\n                Column arrayKeyColumn =\n                        PhysicalColumn.of(\n                                column.getName() + \".key\",\n                                (SeaTunnelDataType<?>) elementType,\n                                (Long) null,\n                                true,\n                                null,\n                                null);\n                String arrayKeyColumnType = reconvert(arrayKeyColumn).getColumnType();\n                builder.dataType(ClickhouseType.ARRAY);\n                builder.columnType(\n                        String.format(\"%s(%s)\", ClickhouseType.ARRAY, arrayKeyColumnType));\n                break;\n            default:\n                throw CommonError.convertToConnectorTypeError(\n                        IDENTIFIER, column.getDataType().getSqlType().name(), column.getName());\n        }\n        return builder.build();\n    }\n}\n","sourceCodeStart":155,"sourceCodeEnd":179,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/catalog/ClickhouseTypeConverter.java#L155-L179","documentation":"ClickhouseTypeConverter.reconvert() maps a SeaTunnel CatalogTable column's data type back to a ClickHouse column type string. If the column's SqlType has no case in the switch, it throws CommonError.convertToConnectorTypeError (COMMON-19): the SeaTunnel type cannot be represented as a ClickHouse type. Notably this method is also reused by the Doris and MaxCompute type converters (columnToDorisType, columnToMaxComputeType).","triggerScenarios":"Building a ClickHouse catalog/table from a SeaTunnel CatalogTable whose column data type hits the switch default — e.g. types like TIME, NULL, or other unmapped SqlTypes. Reached via reconvert() during schema conversion.","commonSituations":"Sourcing from a database with types ClickHouse mapping lacks (e.g. TIME or INTERVAL columns); copying schemas across Doris/MaxCompute/ClickHouse sinks; adding a new SeaTunnel type not yet mapped by this converter version.","solutions":["Change or cast the offending column to a mapped type (STRING, INT, BIGINT, FLOAT, DOUBLE, BOOLEAN, DATE, TIMESTAMP, BYTES, ARRAY, MAP, ROW as supported).","Drop the unsupported column from the table schema before writing.","Upgrade the connector to a version with a broader ClickhouseTypeConverter mapping.","Patch reconvert() to add the missing SqlType -> ClickHouse type mapping if a sensible equivalent exists."],"exampleFix":"// before\nCatalogColumn c = CatalogColumn.of(\"eta\", LocalTimeType.LOCAL_TIME_TYPE); // TIME unmapped\n// after\nCatalogColumn c = CatalogColumn.of(\"eta\", BasicType.STRING_TYPE); // or cast TIME to string","handlingStrategy":"validation","validationCode":"java\nSet<SqlType> mapped = EnumSet.of(SqlType.STRING, SqlType.INT, SqlType.BIGINT, SqlType.FLOAT, SqlType.DOUBLE, SqlType.BOOLEAN, SqlType.DATE, SqlType.TIMESTAMP, SqlType.BYTES, SqlType.ARRAY, SqlType.MAP, SqlType.ROW);\ncatalogTable.getTableSchema().getColumns().forEach(c -> {\n    if (!mapped.contains(c.getDataType().getSqlType())) {\n        throw new IllegalArgumentException(\"Column '\" + c.getName() + \"' type \" + c.getDataType().getSqlType() + \" not mappable to ClickHouse\");\n    }\n});","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Cast unmappable types (TIME, INTERVAL) to STRING/other mapped types upstream.","Review the converter's switch when targeting ClickHouse/Doris/MaxCompute sinks.","Drop unneeded exotic columns from the schema.","Keep connector version current to benefit from expanded type mappings."],"tags":["clickhouse","schema","unsupported-type","type-conversion"],"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"}