es_rejected_execution_exception: es_rejected_execution_exception: rejected execution of ... on ... (queue capacity ...) (HTTP 429)
ElasticsearchWhat does it mean?
An operation was rejected because the queue capacity of the relevant thread pool (search, write/bulk, etc.) is full. Under overload, Elasticsearch protects itself by turning requests away (backpressure) and returns HTTP 429 (Too Many Requests).
Why does it happen?
Very high concurrent request volume, very large or very frequent bulk requests, heavy aggregation/search load, insufficient node/CPU resources, or a thread pool queue too small for the workload.
How to fix it
Retry on the client side with exponential backoff; 429 is normally transient. Reduce the bulk batch size and sending rate, and lower concurrency. Monitor rejected operations: GET _cat/thread_pool?v&h=node_name,name,active,queue,rejected. For sustained load, add nodes/resources (horizontal scaling). Increasing the queue size is a last resort; the root cause is capacity.
More from this engine
- resource_already_exists_exceptionresource_already_exists_exception: index [index_name/uuid] already exists (HTTP 400)
- cluster_health_redcluster health status: RED / unassigned shards
- no_shard_available_action_exceptionno_shard_available_action_exception: No shard available for [...]
- master_not_discovered_exceptionmaster_not_discovered_exception / MasterNotDiscoveredException
- security_exceptionsecurity_exception: unable to authenticate / action [...] is unauthorized for user [...] (HTTP 401/403)
- validation_exceptionvalidation_exception / illegal_argument_exception: Validation Failed: ...
- task_cancelled_exceptiontask_cancelled_exception: Task was cancelled / TaskCancelledException