elastic/elasticsearch · error · IllegalArgumentException
[bucket_sort] only supports field based sorting; incompatibl
Error message
[bucket_sort] only supports field based sorting; incompatible sort: [{sort}] What it means
Error "[bucket_sort] only supports field based sorting; incompatible sort: [{sort}]" thrown in elastic/elasticsearch.
Source
Thrown at modules/aggregations/src/main/java/org/elasticsearch/aggregations/pipeline/BucketSortPipelineAggregationBuilder.java:63
public static final String NAME = "bucket_sort";
private static final ParseField FROM = new ParseField("from");
private static final ParseField SIZE = new ParseField("size");
@SuppressWarnings("unchecked")
public static final ConstructingObjectParser<BucketSortPipelineAggregationBuilder, String> PARSER = new ConstructingObjectParser<>(
NAME,
false,
(a, context) -> new BucketSortPipelineAggregationBuilder(context, (List<FieldSortBuilder>) a[0])
);
static {
PARSER.declareField(optionalConstructorArg(), (p, c) -> {
List<SortBuilder<?>> sorts = SortBuilder.fromXContent(p);
List<FieldSortBuilder> fieldSorts = new ArrayList<>(sorts.size());
for (SortBuilder<?> sort : sorts) {
if (sort instanceof FieldSortBuilder == false) {
throw new IllegalArgumentException(
"[" + NAME + "] only supports field based sorting; incompatible sort: [" + sort + "]"
);
}
fieldSorts.add((FieldSortBuilder) sort);
}
return fieldSorts;
}, SearchSourceBuilder.SORT_FIELD, ObjectParser.ValueType.OBJECT_ARRAY);
PARSER.declareInt(BucketSortPipelineAggregationBuilder::from, FROM);
PARSER.declareInt(BucketSortPipelineAggregationBuilder::size, SIZE);
PARSER.declareField(BucketSortPipelineAggregationBuilder::gapPolicy, p -> {
if (p.currentToken() == XContentParser.Token.VALUE_STRING) {
return GapPolicy.parse(p.text().toLowerCase(Locale.ROOT), p.getTokenLocation());
}
throw new IllegalArgumentException("Unsupported token [" + p.currentToken() + "]");
}, GAP_POLICY, ObjectParser.ValueType.STRING);
}
private List<FieldSortBuilder> sorts = Collections.emptyList();View on GitHub (pinned to db6a809a66)
When it happens
Trigger: Thrown at modules/aggregations/src/main/java/org/elasticsearch/aggregations/pipeline/BucketSortPipelineAggregationBuilder.java:63 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of elastic/elasticsearch@db6a809a66 (2026-08-12).
Data as JSON: /api/errors/f178bf486c9c81e0.
Report an issue: GitHub.