{"record":{"id":"a5c30cba14a3bfd2","repo":"apache/seatunnel","slug":"common-error-code-17","errorCode":"COMMON_ERROR_CODE-17","errorMessage":"SeaTunnel array type not supported this genericType [%s] yet","messagePattern":"SeaTunnel array type not supported this genericType \\[(.+?)\\] yet","errorType":"exception","errorClass":"FileConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/OrcReadStrategy.java","lineNumber":319,"sourceCode":"                        return ArrayType.BOOLEAN_ARRAY_TYPE;\n                    case TINYINT:\n                        return ArrayType.BYTE_ARRAY_TYPE;\n                    case SMALLINT:\n                        return ArrayType.SHORT_ARRAY_TYPE;\n                    case INT:\n                        return ArrayType.INT_ARRAY_TYPE;\n                    case BIGINT:\n                        return ArrayType.LONG_ARRAY_TYPE;\n                    case FLOAT:\n                        return ArrayType.FLOAT_ARRAY_TYPE;\n                    case DOUBLE:\n                        return ArrayType.DOUBLE_ARRAY_TYPE;\n                    default:\n                        String errorMsg =\n                                String.format(\n                                        \"SeaTunnel array type not supported this genericType [%s] yet\",\n                                        seaTunnelDataType);\n                        throw new FileConnectorException(\n                                CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE, errorMsg);\n                }\n            case MAP:\n                TypeDescription keyType = typeDescription.getChildren().get(0);\n                TypeDescription valueType = typeDescription.getChildren().get(1);\n                if (configType instanceof MapType) {\n                    SeaTunnelDataType<?> keyDataType = ((MapType<?, ?>) configType).getKeyType();\n                    SeaTunnelDataType<?> valueDataType =\n                            ((MapType<?, ?>) configType).getValueType();\n                    keyDataType = orcDataType2SeaTunnelDataType(keyType, keyDataType);\n                    valueDataType = orcDataType2SeaTunnelDataType(valueType, valueDataType);\n                    return new MapType<>(keyDataType, valueDataType);\n                } else {\n                    return new MapType<>(\n                            orcDataType2SeaTunnelDataType(keyType, null),\n                            orcDataType2SeaTunnelDataType(valueType, null));\n                }\n            case STRUCT:","sourceCodeStart":301,"sourceCodeEnd":337,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/OrcReadStrategy.java#L301-L337","documentation":"ORC list (array) columns are converted to SeaTunnel array types case-by-case; when the element's genericType has no corresponding SeaTunnel array type, UNSUPPORTED_DATA_TYPE is thrown with 'SeaTunnel array type not supported this genericType [%s] yet'. The connector's ORC mapping table simply has no entry for that element type.","triggerScenarios":"orcDataType2SeaTunnelDataType() hitting the ARRAY case's default branch: a list column whose element type resolves to something other than the supported primitives (int/bigint/double/string etc.).","commonSituations":"ORC files with list<struct>, list<list<...>>, or list<date/decimal> columns; upstream schema evolution introduced a complex nested array the connector doesn't map; user config requesting the nested array column.","solutions":["Remove the unsupported array column from the read columns / projection.","Flatten or transform the nested structure upstream before writing ORC.","Check the supported element types for arrays in the connector docs and align the schema.","Extend the type-mapping switch if you maintain a fork and add the missing mapping."],"exampleFix":"// before: reading column 'tags' of type list<struct<...>>\nschema = { fields { tags = array<string> } }\n// after: project only supported columns\nschema = { fields { id = int, name = string } }","handlingStrategy":"validation","validationCode":"// check ORC list element types before configuring reads\norc-tools meta file.orc | jq '.types[] | select(.category==\"LIST\")'","typeGuard":"function hasSupportedArrayElements(orcSchema) { return orcSchema.listColumns.every(c => [\"INT\",\"BIGINT\",\"DOUBLE\",\"STRING\"].includes(c.elementCategory)); }","tryCatchPattern":"try { rowType = strategy.getSeaTunnelRowTypeInfo(path); } catch (FileConnectorException e) { if (e.getMessage().contains(\"array type not supported\")) { log.error(\"Unsupported array element: {}\", extractType(e.getMessage())); } throw e; }","preventionTips":["Avoid list<struct> and nested list columns in ORC files read by this connector","Project only columns with supported types","Flatten complex structures upstream","Check the connector's supported-type docs before schema design"],"tags":["orc","unsupported-type","array","data-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-14T11:17:12.474Z"}