{"record":{"id":"45882e0ce7fbb259","repo":"apache/seatunnel","slug":"not-support-type","errorCode":"NOT_SUPPORT_TYPE","errorMessage":"NOT_SUPPORT_TYPE","messagePattern":"NOT_SUPPORT_TYPE","errorType":"error_code","errorClass":"MilvusConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/utils/sink/MilvusSinkConverter.java","lineNumber":132,"sourceCode":"                        Integer[] intArray = (Integer[]) value;\n                        return Arrays.asList(intArray);\n                    case BIGINT:\n                        Long[] longArray = (Long[]) value;\n                        return Arrays.asList(longArray);\n                    case FLOAT:\n                        Float[] floatArray = (Float[]) value;\n                        return Arrays.asList(floatArray);\n                    case DOUBLE:\n                        Double[] doubleArray = (Double[]) value;\n                        return Arrays.asList(doubleArray);\n                }\n            case ROW:\n                SeaTunnelRow row = (SeaTunnelRow) value;\n                return JsonUtils.toJsonString(row.getFields());\n            case MAP:\n                return JsonUtils.toJsonString(value);\n            default:\n                throw new MilvusConnectorException(\n                        MilvusConnectionErrorCode.NOT_SUPPORT_TYPE, sqlType.name());\n        }\n    }\n\n    public static FieldType convertToFieldType(\n            Column column,\n            PrimaryKey primaryKey,\n            String partitionKeyField,\n            Boolean autoId,\n            Boolean enableNullableField) {\n        SeaTunnelDataType<?> seaTunnelDataType = column.getDataType();\n        DataType milvusDataType;\n        if (column.getSinkType() != null) {\n            milvusDataType = DataType.valueOf(column.getSinkType());\n        } else {\n            milvusDataType = convertSqlTypeToDataType(seaTunnelDataType.getSqlType());\n        }\n        FieldType.Builder build =","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/utils/sink/MilvusSinkConverter.java#L114-L150","documentation":"MilvusSinkConverter.convertBySeaTunnelType throws NOT_SUPPORT_TYPE when a SeaTunnelColumn value has an SqlType the converter cannot serialize to a Milvus JSON field. The default branch catches every type outside the explicitly handled cases (e.g. certain DATE/TIME/NULL/complex variants) and rejects them, naming the offending SqlType.","triggerScenarios":"A sink row contains a column whose SqlType (sqlType.name() is included in the message) falls through the switch in convertBySeaTunnelType — e.g. unsupported structured or temporal types — during conversion of row data into Milvus JsonObject payloads.","commonSituations":"Source tables containing column types Milvus/JSON conversion does not handle (e.g. TIMESTAMP/NULL/ARRAY variants depending on connector version), schemas drifting after an upgrade, or reading from sources that emit types the Milvus sink never anticipated.","solutions":["Read sqlType.name() in the message to identify the unsupported type and transform that column upstream (e.g. via a FieldMapper/SQL transform casting to STRING)","Cast unsupported columns to supported types (STRING/INT/ARRAY/FLOAT/etc.) before the Milvus sink","Drop unnecessary columns via transform so they never reach the sink","Upgrade SeaTunnel if a newer version added support for that SqlType","File/track a connector enhancement if the type is essential to your pipeline"],"exampleFix":"// before: TIMESTAMP column passed straight to Milvus sink\ntransform = Sql {\n  source_table = \"src\"\n  result_table_name = \"t\"\n}\n// after: cast the unsupported column to STRING\ntransform = Sql {\n  source_table = \"src\"\n  result_table_name = \"t\"\n  query = \"SELECT CAST(event_time AS STRING) AS event_time, id, embedding FROM src\"\n}","handlingStrategy":"validation","validationCode":"// Pre-validate upstream schema contains only sink-supported SqlTypes\nSet<SqlType> supported = Set.of(SqlType.STRING, SqlType.INT, SqlType.BIGINT,\n    SqlType.FLOAT, SqlType.DOUBLE, SqlType.BOOLEAN, SqlType.ARRAY, SqlType.ROW, SqlType.MAP);\nfor (CatalogTable table : tables)\n  for (Column c : table.getTableSchema().getColumns())\n    if (!supported.contains(c.getSqlType()))\n      throw new IllegalStateException(\"Cast or drop column before Milvus sink: \" + c.getName());","typeGuard":null,"tryCatchPattern":"try {\n  sink.write(rows);\n} catch (MilvusConnectorException e) {\n  if (e.getErrorCode() == MilvusConnectionErrorCode.NOT_SUPPORT_TYPE) {\n    logger.error(\"Unsupported SqlType reaching Milvus sink: {}\", e.getMessage());\n  } else { throw e; }\n}","preventionTips":["Cast unsupported columns (TIMESTAMP/DATE/etc.) to STRING upstream via a SQL transform","Drop unused columns before the sink","Pin and review the connector's supported-type list on upgrades","Validate schema compatibility in CI before deploying the pipeline"],"tags":["milvus","sink","type-conversion","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"}