{"record":{"id":"efc1b7d4f017e90e","repo":"apache/seatunnel","slug":"unsupported-data-type-efc1b7","errorCode":"UNSUPPORTED_DATA_TYPE","errorMessage":"Unsupported column type: ","messagePattern":"Unsupported column type: ","errorType":"error_code","errorClass":"KuduConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/serialize/KuduRowSerializer.java","lineNumber":108,"sourceCode":"                    case DECIMAL:\n                    case BYTES:\n                        row.addObject(\n                                seaTunnelRowType.getFieldName(columnIndex),\n                                element.getField(columnIndex));\n                        break;\n                    case TIMESTAMP:\n                        Object fieldValue = element.getField(columnIndex);\n                        if (fieldValue == null) {\n                            row.addObject(seaTunnelRowType.getFieldName(columnIndex), null);\n                        } else {\n                            LocalDateTime localDateTime = (LocalDateTime) fieldValue;\n                            row.addObject(\n                                    seaTunnelRowType.getFieldName(columnIndex),\n                                    java.sql.Timestamp.valueOf(localDateTime));\n                        }\n                        break;\n                    default:\n                        throw new KuduConnectorException(\n                                CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,\n                                \"Unsupported column type: \" + type.getSqlType());\n                }\n            } catch (ClassCastException e) {\n                throw new KuduConnectorException(\n                        KuduConnectorErrorCode.DATA_TYPE_CAST_FIELD,\n                        \"Value type does not match column type \"\n                                + type.getSqlType()\n                                + \" for column \"\n                                + seaTunnelRowType.getFieldName(columnIndex));\n            }\n        }\n    }\n}\n","sourceCodeStart":90,"sourceCodeEnd":123,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/serialize/KuduRowSerializer.java#L90-L123","documentation":"KuduRowSerializer.transform() converts SeaTunnel column values to Kudu column values per SQL type. A SQL type not handled by the switch triggers KuduConnectorException with UNSUPPORTED_DATA_TYPE, reporting the unsupported SqlType. ClassCastExceptions on values are separately wrapped as DATA_TYPE_CAST_FIELD errors.","triggerScenarios":"Sink writing a SeaTunnelRow whose schema contains a SqlType the serializer does not handle (falling into the default branch), e.g. arrays/maps/rows or other complex types.","commonSituations":"Source-to-sink pipelines where the upstream produces complex types (ARRAY/MAP/ROW) that Kudu serializer cannot map; schema changes adding new column types upstream.","solutions":["Remove or cast unsupported complex columns before the Kudu sink","Use a transform to convert complex types to supported scalar types","Verify the Kudu table schema matches only supported SeaTunnel types","Extend KuduRowSerializer if a mapping is feasible"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"// Verify schema compatibility before writing\nfor (SeaTunnelDataType<?> t : rowType.getFieldTypes()) {\n  if (!(t.getSqlType() == SqlType.STRING || t.getSqlType() == SqlType.INT ... /* supported set */))\n    throw new IllegalStateException(\"Unsupported column type: \" + t.getSqlType());\n}","typeGuard":"// Java guard\nboolean isSupportedSqlType(SqlType sqlType) {\n  return sqlType == SqlType.STRING || sqlType == SqlType.INT || sqlType == SqlType.BIGINT\n      || sqlType == SqlType.TIMESTAMP /* ...only supported scalar types... */;\n}","tryCatchPattern":"try { serializer.serializeRow(row); } catch (KuduConnectorException e) {\n  if (\"UNSUPPORTED_DATA_TYPE\".equals(e.getSeaTunnelErrorCode())) { /* flatten/convert column upstream */ }\n} catch (KuduConnectorException castEx) { /* DATA_TYPE_CAST_FIELD: fix value types */ }","preventionTips":["Flatten ARRAY/MAP/ROW columns with a transform before the Kudu sink","Match sink table schema to supported scalar SeaTunnel types","Cast values explicitly (e.g. LocalDateTime -> Timestamp) upstream"],"tags":["kudu","sink","type-mapping"],"backgroundTag":"unsupported-dtype","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}