# Maximum Scroll Context

**URL:** <https://discuss.elastic.co/t/maximum-scroll-context/384754>\
**Category:** Elasticsearch\
**Created:** [January 27, 2026, 10:36am UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754 "2026-01-27T10:36:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lakshya\_Gupta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lakshya_gupta/32/146116_2.png) [@Lakshya\_Gupta](https://discuss.elastic.co/u/Lakshya_Gupta)\
**Post date:** [January 27, 2026, 10:36am UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754/1 "2026-01-27T10:36:43Z")

</div>

Hi guys, I was wondering that the maximum scroll context is a node level property across all the indices right? If that’s true, then does it mean that any elastic cluster wherein let’s assume number of primary shards = number of data nodes, with each primary shard on 1 data node, the cluster cannot handle more than 1024 concurrent / parallel scroll requests? (Considering we have set the limit as 1024).

Also, if the data only exists on the 5 nodes, will the scroll instantly close on the remaining nodes, or will it continue to stay open till the time the entire polling is completed from these 5 nodes as well?

---

<div class="post-metadata">

**Author:** ![RainTown](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/raintown/32/140206_2.png) [@RainTown](https://discuss.elastic.co/u/RainTown)\
**Post date:** [January 27, 2026, 4:59pm UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754/2 "2026-01-27T16:59:27Z")

</div>

Welcome back @Lakshya_Gupta

It might be useful to reference the long previous discussion around your cluster, though I doubt anyone will read all of it (again):

> [@High CPU Usage on a few data nodes / Hotspotting of data](https://discuss.elastic.co/t/high-cpu-usage-on-a-few-data-nodes-hotspotting-of-data/383954/201):
>
> Sure, thanks a lot for the support!

Note I do recognize it's a different question(s() yu are asking today.

"if the data only exists on the 5 nodes, will the scroll instantly close on the remaining"

I'm not an expert on the internals, but I would expect no scroll context to be created on nodes with no matching data, never mind "instantly close"?

btw you can see the counts in output of a GET to

`_nodes/stats/indices/search`

so should not be too hard to validate the behavior

---

<div class="post-metadata">

**Author:** ![Lakshya\_Gupta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lakshya_gupta/32/146116_2.png) [@Lakshya\_Gupta](https://discuss.elastic.co/u/Lakshya_Gupta)\
**Post date:** [January 28, 2026, 6:34am UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754/3 "2026-01-28T06:34:41Z")

</div>

> [@RainTown](#):
>
> I'm not an expert on the internals, but I would expect no scroll context to be created on nodes with no matching data, never mind "instantly close"?

That’s what I expected to happen, but apparently I created 2 scenarios.

Routing with routing partition = 5, and no routing.

In case of routing, each scroll request (containing the routing id) was only opening 5 scrolls, whereas in case of no routing, the scroll request was opening scrolls on all the primary shards.

Also just to mention, this is not associated with the other thread…this is a completely different 😃 .

---

<div class="post-metadata">

**Author:** ![RainTown](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/raintown/32/140206_2.png) [@RainTown](https://discuss.elastic.co/u/RainTown)\
**Post date:** [January 28, 2026, 2:11pm UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754/4 "2026-01-28T14:11:59Z")

</div>

> [@Lakshya\_Gupta](#):
>
> That’s what I expected to happen, but apparently I created 2 scenarios.

What does that mean? Maybe share/show what you actually did to "apparently create 2 scenarios" ?

> [@Lakshya\_Gupta](#):
>
> Also just to mention, this is not associated with the other thread

It's an entirely different cluster? Just coincidence that the scroll request with routing id targeted only 5 nodes, 5 being the magic number in the other thread? 🤔

If so, understood, please accept my apology.

---

<div class="post-metadata">

**Author:** ![Lakshya\_Gupta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lakshya_gupta/32/146116_2.png) [@Lakshya\_Gupta](https://discuss.elastic.co/u/Lakshya_Gupta)\
**Post date:** [January 29, 2026, 11:06am UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754/5 "2026-01-29T11:06:25Z")

</div>

> [@RainTown](#):
>
> What does that mean? Maybe share/show what you actually did to "apparently create 2 scenarios" ?

Basically creating 2 indices and populating them with the same data, however one had routing enabled and the other didn’t have any explicit custom routing enabled.

> [@RainTown](#):
>
> It's an entirely different cluster? Just coincidence that the scroll request with routing id targeted only 5 nodes, 5 being the magic number in the other thread?

5 is our routing\_partition which we have defined in the configuration, and hence it’s the magic number in both the threads 😉

---

<div class="post-metadata">

**Author:** ![RainTown](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/raintown/32/140206_2.png) [@RainTown](https://discuss.elastic.co/u/RainTown)\
**Post date:** [January 29, 2026, 1:07pm UTC](https://discuss.elastic.co/t/maximum-scroll-context/384754/6 "2026-01-29T13:07:35Z")

</div>

> [@Lakshya\_Gupta](#):
>
> Basically creating 2 indices and populating them with the same data, however one had routing enabled and the other didn’t have any explicit custom routing enabled.

OK. And:

> [@Lakshya\_Gupta](#):
>
> In case of routing, each scroll request (containing the routing id) was only opening 5 scrolls, whereas in case of no routing, the scroll request was opening scrolls on all the primary shards.

What's confusing you here?

But always best to be clear and explicit For me at least, it was really far from obvious that:

> [@Lakshya\_Gupta](#):
>
> but apparently I created 2 scenarios

meant

> [@Lakshya\_Gupta](#):
>
> Basically creating 2 indices and populating them with the same data, however one had routing enabled and the other didn’t have any explicit custom routing enabled.
