{"record":{"id":"6ee80e7d75eaa525","repo":"apache/seatunnel","slug":"common-17-6ee80e","errorCode":"COMMON-17","errorMessage":"'${identifier}' unsupported convert type '${dataType}' of '${field}' to SeaTunnel data type.","messagePattern":"'(.+?)' unsupported convert type '(.+?)' of '(.+?)' to SeaTunnel data type\\.","errorType":"error_code","errorClass":"SeaTunnelRuntimeException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-lance/src/main/java/org/apache/seatunnel/connectors/seatunnel/lance/data/LanceTypeMapper.java","lineNumber":85,"sourceCode":"            case \"float64\":\n                return BasicType.DOUBLE_TYPE;\n            case \"date\":\n            case \"date32\":\n            case \"date64\":\n                return LocalTimeType.LOCAL_DATE_TYPE;\n            case \"time\":\n            case \"time32\":\n            case \"time64\":\n                return LocalTimeType.LOCAL_TIME_TYPE;\n            case \"timestamp\":\n                return LocalTimeType.LOCAL_DATE_TIME_TYPE;\n            case \"binary\":\n                return BasicType.BYTE_TYPE;\n            case \"decimal128\":\n                return new DecimalType(38, 10);\n                // TODO: struct|list|map\n            default:\n                throw CommonError.convertToSeaTunnelTypeError(\"Lance\", type.getType(), field);\n        }\n    }\n\n    public JsonArrowDataType convertJsonArrowType(\n            String field, @NonNull SeaTunnelDataType<?> type) {\n        switch (type.getSqlType()) {\n            case TINYINT:\n            case SMALLINT:\n            case BIGINT:\n            case INT:\n                JsonArrowDataType intType = new JsonArrowDataType();\n                intType.setType(\"int32\");\n                return intType;\n            case STRING:\n                JsonArrowDataType stringType = new JsonArrowDataType();\n                stringType.setType(\"utf8\");\n                return stringType;\n            case MAP:","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-lance/src/main/java/org/apache/seatunnel/connectors/seatunnel/lance/data/LanceTypeMapper.java#L67-L103","documentation":"Lance connector's LanceTypeMapper.convertDataType() throws this when a Lance/Arrow physical type string has no mapping to a SeaTunnel data type. Struct, list and map Lance types are explicitly unimplemented (TODO), and any other unrecognized type string also lands in the default throw.","triggerScenarios":"Reading a Lance table whose column type string (type.getType()) is not one of the mapped primitives — e.g. 'struct', 'list', 'map', or an unexpected type string.","commonSituations":"Reading Lance datasets containing nested/complex columns (struct/list/map) which are not yet supported by the mapper; corrupted or unusual type metadata.","solutions":["Remove or project out nested (struct/list/map) columns from the Lance dataset before reading","Cast nested columns to supported primitive types","Await/patch mapper support: add a case for the type in LanceTypeMapper.convertDataType()"],"exampleFix":"// before\ndataset.to_table(columns=[\"nested_col\", \"id\"])\n// after: select only supported columns\ndataset.to_table(columns=[\"id\", \"name\"])","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    SeaTunnelDataType<?> t = mapper.convertDataType(field, lanceType);\n} catch (SeaTunnelConvertException e) {\n    LOG.warn(\"Skipping unsupported Lance type {}\", lanceType.getType());\n    // fallback: filter the column out of the read schema\n}","preventionTips":["Filter unsupported columns from the dataset schema before mapping"],"tags":["lance","type-conversion","arrow"],"backgroundTag":"unsupported-dtype","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}