apache/seatunnel · error · FileConnectorException

COMMON_ERROR_CODE-17

COMMON_ERROR_CODE-17

Error message

SeaTunnel array type not supported this genericType [%s] yet

What it means

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.

Source

Thrown at seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/OrcReadStrategy.java:319

                        return ArrayType.BOOLEAN_ARRAY_TYPE;
                    case TINYINT:
                        return ArrayType.BYTE_ARRAY_TYPE;
                    case SMALLINT:
                        return ArrayType.SHORT_ARRAY_TYPE;
                    case INT:
                        return ArrayType.INT_ARRAY_TYPE;
                    case BIGINT:
                        return ArrayType.LONG_ARRAY_TYPE;
                    case FLOAT:
                        return ArrayType.FLOAT_ARRAY_TYPE;
                    case DOUBLE:
                        return ArrayType.DOUBLE_ARRAY_TYPE;
                    default:
                        String errorMsg =
                                String.format(
                                        "SeaTunnel array type not supported this genericType [%s] yet",
                                        seaTunnelDataType);
                        throw new FileConnectorException(
                                CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE, errorMsg);
                }
            case MAP:
                TypeDescription keyType = typeDescription.getChildren().get(0);
                TypeDescription valueType = typeDescription.getChildren().get(1);
                if (configType instanceof MapType) {
                    SeaTunnelDataType<?> keyDataType = ((MapType<?, ?>) configType).getKeyType();
                    SeaTunnelDataType<?> valueDataType =
                            ((MapType<?, ?>) configType).getValueType();
                    keyDataType = orcDataType2SeaTunnelDataType(keyType, keyDataType);
                    valueDataType = orcDataType2SeaTunnelDataType(valueType, valueDataType);
                    return new MapType<>(keyDataType, valueDataType);
                } else {
                    return new MapType<>(
                            orcDataType2SeaTunnelDataType(keyType, null),
                            orcDataType2SeaTunnelDataType(valueType, null));
                }
            case STRUCT:

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Remove the unsupported array column from the read columns / projection.
  2. Flatten or transform the nested structure upstream before writing ORC.
  3. Check the supported element types for arrays in the connector docs and align the schema.
  4. Extend the type-mapping switch if you maintain a fork and add the missing mapping.

Example fix

// before: reading column 'tags' of type list<struct<...>>
schema = { fields { tags = array<string> } }
// after: project only supported columns
schema = { fields { id = int, name = string } }
Defensive patterns

Strategy: validation

Validate before calling

// check ORC list element types before configuring reads
orc-tools meta file.orc | jq '.types[] | select(.category=="LIST")'

Type guard

function hasSupportedArrayElements(orcSchema) { return orcSchema.listColumns.every(c => ["INT","BIGINT","DOUBLE","STRING"].includes(c.elementCategory)); }

Try / catch

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; }

Prevention

When it happens

Trigger: 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.).

Common situations: 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.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/a5c30cba14a3bfd2. Report an issue: GitHub.