apache/seatunnel · error · EasysearchConnectorException
EZS_FIELD_TYPE_NOT_SUPPORT
EZS_FIELD_TYPE_NOT_SUPPORT
Error message
easysearch type is %s
What it means
EzsTypeMappingSeaTunnelType.getSeaTunnelDataType maps an Easysearch field type string to a SeaTunnelDataType via a static MAPPING table; unknown types throw EZS_FIELD_TYPE_NOT_SUPPORT naming the offending esType. The connector cannot represent the field in the SeaTunnel type system.
Source
Thrown at seatunnel-connectors-v2/connector-easysearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/easysearch/constant/EzsTypeMappingSeaTunnelType.java:59
put("integer", BasicType.INT_TYPE);
put("long", BasicType.LONG_TYPE);
put("float", BasicType.FLOAT_TYPE);
put("half_float", BasicType.FLOAT_TYPE);
put("double", BasicType.DOUBLE_TYPE);
put("date", LocalTimeType.LOCAL_DATE_TIME_TYPE);
}
};
/**
* if not find the mapping SeaTunnelDataType will throw runtime exception
*
* @param esType
* @return
*/
public static SeaTunnelDataType getSeaTunnelDataType(String esType) {
SeaTunnelDataType seaTunnelDataType = MAPPING.get(esType);
if (seaTunnelDataType == null) {
throw new EasysearchConnectorException(
EasysearchConnectorErrorCode.EZS_FIELD_TYPE_NOT_SUPPORT,
String.format("easysearch type is %s", esType));
}
return seaTunnelDataType;
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Change the field's mapping to a supported scalar type (keyword, text, long, integer, double, boolean, date, etc.).
- Exclude or filter out unsupported fields in the query/source configuration.
- Extend the connector's type mapping table if you maintain a fork.
- Align connector/cluster versions so the type table covers the cluster's types.
Example fix
// index mapping field
"location": { "type": "geo_point" } // unsupported
// after: remap in index template
"location": { "type": "keyword" } // or use supported type Defensive patterns
Strategy: validation
Validate before calling
String esType = mapping.get(fieldName);
if (!SUPPORTED_TYPES.contains(esType)) throw new IllegalArgumentException("unsupported field type " + esType + " for " + fieldName); Type guard
Object ensureSupportedType(Object v) { return v instanceof String || v instanceof Number || v instanceof Boolean || v instanceof Map || v instanceof List ? v : String.valueOf(v); } Try / catch
try { dt = EzsTypeMappingSeaTunnelType.getSeaTunnelDataType(esType); } catch (EasysearchConnectorException e) { /* skip field or use fallback STRING type */ } Prevention
- Restrict index mappings to supported scalar types
- Check the connector's type mapping table for your cluster version
- Filter out geo/complex fields in source config
When it happens
Trigger: Reading an index whose mapping contains a field type not present in the mapping table (e.g. geo_shape, percolator, binary, ip, or newer Easysearch types), resolved during schema discovery.
Common situations: Indexes containing advanced/geo/nested field types; cluster version newer than connector's supported type table; dynamic mapping creating exotic types.
Related errors
- UNSUPPORTED_DATA_TYPE
- Unsupported Vitess catalog SQL type:
- seaTunnelDataType cannot be null
- UNSUPPORTED_DATA_TYPE
- ES_FIELD_TYPE_NOT_SUPPORT
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/5e8574e68e882004.
Report an issue: GitHub.