Slice cannot be used outside of a scroll context – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-7.14

Briefly, this error occurs when the `slice` parameter is used in a search query outside of a scroll context. The `slice` parameter is used for splitting a scroll into multiple parts, but it’s not applicable for regular search queries. To resolve this issue, you can either remove the `slice` parameter from your search query if it’s not necessary, or if you need to use `slice`, you should use it within a scroll context. This involves initializing a scroll and then using the `slice` parameter in subsequent scroll requests.

This guide will help you check for common problems that cause the log ” `slice` cannot be used outside of a scroll context ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: search, scroll.

Log Context

Log “`slice` cannot be used outside of a scroll context” class name is SearchService.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 context.searchAfter(fieldDoc);
 }  if (source.slice() != null) {
 if (context.scrollContext() == null) {
 throw new SearchException(shardTarget; "`slice` cannot be used outside of a scroll context");
 }
 context.sliceBuilder(source.slice());
 }  if (source.storedFields() != null) {

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?