{"record":{"id":"da201ad04dbe2b1e","repo":"apache/seatunnel","slug":"common-19-da201a","errorCode":"COMMON-19","errorMessage":"'${identifier}' unsupported convert SeaTunnel data type '${dataType}' of '${field}' to connector data type.","messagePattern":"'(.+?)' unsupported convert SeaTunnel data type '(.+?)' of '(.+?)' to connector 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/phoenix/PhoenixTypeConverter.java","lineNumber":364,"sourceCode":"                        break;\n                    case BIGINT:\n                        builder.columnType(PHOENIX_BIGINT + \" \" + PHOENIX_ARRAY);\n                        builder.dataType(PHOENIX_BIGINT + \" \" + PHOENIX_ARRAY);\n                        break;\n                    case FLOAT:\n                        builder.columnType(PHOENIX_FLOAT + \" \" + PHOENIX_ARRAY);\n                        builder.dataType(PHOENIX_FLOAT + \" \" + PHOENIX_ARRAY);\n                        break;\n                    case DOUBLE:\n                        builder.columnType(PHOENIX_DOUBLE + \" \" + PHOENIX_ARRAY);\n                        builder.dataType(PHOENIX_DOUBLE + \" \" + PHOENIX_ARRAY);\n                        break;\n                    case STRING:\n                        builder.columnType(PHOENIX_VARCHAR + \" \" + PHOENIX_ARRAY);\n                        builder.dataType(PHOENIX_VARCHAR + \" \" + PHOENIX_ARRAY);\n                        break;\n                    default:\n                        throw CommonError.convertToConnectorTypeError(\n                                PHOENIX, elementType.getSqlType().name(), column.getName());\n                }\n                break;\n            default:\n                throw CommonError.convertToConnectorTypeError(\n                        PHOENIX, column.getDataType().getSqlType().name(), column.getName());\n        }\n\n        return builder.build();\n    }\n}\n","sourceCodeStart":346,"sourceCodeEnd":376,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/phoenix/PhoenixTypeConverter.java#L346-L376","documentation":"PhoenixTypeConverter.reconvert() throws this when mapping a SeaTunnel column whose data type is a supported array type back to a Phoenix column type, but the array's ELEMENT type is unsupported (default branch of the inner switch). CommonError.convertToConnectorTypeError is invoked with PHOENIX and the element SQL type name.","triggerScenarios":"Auto-creating a Phoenix table (sink auto-create-table) where a SeaTunnel ARRAY column has an element type not in the inner switch (e.g. array of ROW, NULL, or other unhandled element types) — inner default in reconvert.","commonSituations":"Sink to Phoenix with auto-create enabled and a source produced ARRAY<DECIMAL> or ARRAY<MAP> style columns; Phoenix array support is limited, so many element types cannot be mapped.","solutions":["Avoid auto-create of the array column, or pre-create the Phoenix table with a compatible array type","Flatten or cast the array element to a supported type (e.g. ARRAY<STRING>) upstream via a transform","Extend the inner switch in PhoenixTypeConverter.reconvert to map the element type"],"exampleFix":"// before: SeaTunnel ARRAY<MAP> column\n// after: cast in source/transform so element type is STRING\nsource { Jdbc { query = \"SELECT CAST(arr AS STRING) AS arr_str FROM t\" } }","handlingStrategy":"validation","validationCode":"// Before auto-create, check array element types are supported:\nfor (CatalogColumn col : catalogTable.getTableSchema().getColumns()) {\n    if (col.getDataType() instanceof ArrayType) {\n    SqlType el = ((ArrayType) col.getDataType()).getElementType().getSqlType();\n    if (!Set.of(SqlType.STRING, SqlType.INT, SqlType.BIGINT, SqlType.DOUBLE, SqlType.BOOLEAN).contains(el)) {\n        throw new IllegalStateException(\"Unsupported Phoenix array element: \" + el);\n    }\n    }\n}","typeGuard":null,"tryCatchPattern":"try {\n    PhysicalColumn col = converter.reconvert(column);\n} catch (SeaTunnelRuntimeException e) {\n    LOG.warn(\"Cannot map array element to Phoenix: {}\", e.getMessage());\n    // cast element to STRING upstream or skip auto-create\n}","preventionTips":["Only use arrays of primitive element types when sinking to Phoenix","Pre-create Phoenix tables for complex schemas instead of auto-create-table","Test schema conversion in a batch job before production runs"],"tags":["jdbc","phoenix","type-conversion","auto-create"],"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"}