Rejected requests

edit

When Elasticsearch rejects a request, it stops the operation and returns an error with a 429 response code. Rejected requests are commonly caused by:

Check rejected tasks

edit

To check the number of rejected tasks for each thread pool, use the cat thread pool API. A high ratio of rejected to completed tasks, particularly in the search and write thread pools, means Elasticsearch regularly rejects requests.

response = client.cat.thread_pool(
  v: true,
  h: 'id,name,active,rejected,completed'
)
puts response
GET /_cat/thread_pool?v=true&h=id,name,active,rejected,completed

Prevent rejected requests

edit

Fix high CPU and memory usage

If Elasticsearch regularly rejects requests and other tasks, your cluster likely has high CPU usage or high JVM memory pressure. For tips, see High CPU usage and High JVM memory pressure.

Prevent circuit breaker errors

If you regularly trigger circuit breaker errors, see Circuit breaker errors for tips on diagnosing and preventing them.