Cannot set after key in the composite aggregation name – – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.13-7.15

Briefly, this error occurs when you’re trying to paginate through results of a composite aggregation in Elasticsearch and you’re setting an incorrect ‘after’ key. The ‘after’ key is used to retrieve the next page of results. To resolve this, ensure that the ‘after’ key you’re setting is correct. It should be the last bucket from the previous page. Also, ensure that the ‘after’ key is in the same order as the sources in your composite aggregation. Lastly, check that your Elasticsearch version supports pagination in composite aggregations.

This guide will help you check for common problems that cause the log ” Cannot set after key in the composite aggregation [” + name + “] – ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: aggregations, search.

Log Context

Log “Cannot set after key in the composite aggregation [” + name + “] – ” class name is CompositeAggregator.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 this.queue = new CompositeValuesCollectorQueue(context.bigArrays(); sources; size);
 if (rawAfterKey != null) {
 try {
 this.queue.setAfterKey(rawAfterKey);
 } catch (IllegalArgumentException ex) {
 throw new ElasticsearchParseException("Cannot set after key in the composite aggregation [" + name + "] - " +
 ex.getMessage(); ex);
 }
 }
 this.rawAfterKey = rawAfterKey;
 }

 

 [ratemypost]