HTTP 429: Too Many Requests

The proximate cause of HTTP 429 errors occur is that an app has exceeded its concurrent connection limits for too long. This is often due to a spike in usage -- perhaps a new feature as been deployed, or a service is growing quickly, or maybe there is a regression in the code.

It can also happen when reindexing (engineers want to push all the data into Elasticsearch as quickly as possible, which means lots of parallelization... right?). Unusually expensive requests, or other unusual latency and performance degradation within Elasticsearch itself can also cause unexpected queuing and result in 429 errors.

In most cases, 429 errors can be solved by upgrading your plan to a plan with higher connection limits; new connection limits are applied immediately. If that's not viable, then you may need to perform additional batching of your updates (e.g. queuing and bulk updating) or searches (e.g. with multi-search API). For more information on upgrading your plan, see the documentation.

Finally, we have some suggestions for optimizing your requests that can help point you in the right direction.