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
- 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.
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
- 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
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
- array inject error, unsupported data type: " + type
- Unsupported type in LocalTimeArrayType: ${eleSqlType}
- Unsupported SQL type:
- UNSUPPORTED_DATA_TYPE
- UNSUPPORTED_DATA_TYPE
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/a5c30cba14a3bfd2.
Report an issue: GitHub.