{"record":{"id":"a5a3f977b3f24978","repo":"apache/seatunnel","slug":"unsupported-data-type-datatype","errorCode":null,"errorMessage":"Unsupported data type: ${dataType}","messagePattern":"Unsupported data type: (.+?)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/utils/source/MilvusSourceConverter.java","lineNumber":351,"sourceCode":"                builder.dataType(VectorType.VECTOR_FLOAT16_TYPE);\n                for (KeyValuePair keyValuePair : fieldSchema.getTypeParamsList()) {\n                    if (keyValuePair.getKey().equals(\"dim\")) {\n                        builder.scale(Integer.valueOf(keyValuePair.getValue()));\n                        break;\n                    }\n                }\n                break;\n            case BFloat16Vector:\n                builder.dataType(VectorType.VECTOR_BFLOAT16_TYPE);\n                for (KeyValuePair keyValuePair : fieldSchema.getTypeParamsList()) {\n                    if (keyValuePair.getKey().equals(\"dim\")) {\n                        builder.scale(Integer.valueOf(keyValuePair.getValue()));\n                        break;\n                    }\n                }\n                break;\n            default:\n                throw new UnsupportedOperationException(\"Unsupported data type: \" + dataType);\n        }\n\n        return builder.build();\n    }\n\n    private JsonObject convertDynamicField(Map<String, Object> fieldValuesMap) {\n        JsonObject dynamicField = new JsonObject();\n        for (Map.Entry<String, Object> entry : fieldValuesMap.entrySet()) {\n            if (!existField.contains(entry.getKey())) {\n                dynamicField.add(entry.getKey(), gson.toJsonTree(entry.getValue()));\n            }\n        }\n        return dynamicField;\n    }\n}\n","sourceCodeStart":333,"sourceCodeEnd":367,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/utils/source/MilvusSourceConverter.java#L333-L367","documentation":"MilvusSourceConverter.convertColumn maps Milvus FieldSchema DataType values to SeaTunnel PhysicalColumn types. Any Milvus DataType not explicitly handled (Bool, Int8-64, Float, Double, VarChar, String, JSON, Array, and the vector types) causes a plain UnsupportedOperationException 'Unsupported data type: <dataType>'.","triggerScenarios":"Calling convertColumn (schema/table discovery paths) on a Milvus field whose DataType enum is new or unmapped, e.g. newer Milvus types added after this connector was written.","commonSituations":"Connecting to a newer Milvus server that exposes new data types; using a feature type (e.g. SparseFloatVector variants, function-output fields) unsupported by the connector version.","solutions":["Identify the reported DataType and remove/transform that field, or use only supported field types in the collection.","Upgrade SeaTunnel/connector-milvus to a version mapping that DataType.","As a stopgap, patch convertColumn to map the DataType to the closest SeaTunnel type (e.g. STRING)."],"exampleFix":"// before\ndefault:\n    throw new UnsupportedOperationException(\"Unsupported data type: \" + dataType);\n// after\ncase Geometry:\n    builder.dataType(BasicType.STRING_TYPE);\n    break;\ndefault:\n    throw new UnsupportedOperationException(\"Unsupported data type: \" + dataType);","handlingStrategy":"try-catch","validationCode":"// pre-check Milvus collection schema\nfor (FieldSchema f : describeResp.getFieldsList()) {\n    if (!SUPPORTED_MILVUS_DATATYPES.contains(f.getDataType())) {\n        throw new IllegalArgumentException(\"Milvus field \" + f.getName() + \" has unsupported type \" + f.getDataType());\n    }\n}","typeGuard":null,"tryCatchPattern":"try { column = MilvusSourceConverter.convertColumn(fieldSchema); } catch (UnsupportedOperationException e) { log.error(\"Milvus type not mapped: {}\", e.getMessage()); throw new CatalogException(e.getMessage(), e); }","preventionTips":["Check describe_collection for unsupported DataTypes before building the SeaTunnel catalog","Keep connector version current with the Milvus server version","Avoid creating Milvus collections with exotic field types if the pipeline must read them"],"tags":["milvus","schema","catalog","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"}