Magento 2 : Fixing Elasticsearch's "TOO_MANY_REQUESTS/12" Error: Flood-Stage Disk Usage


During a recent Magento 2.4.4 development sprint, I ran into a puzzling indexing error that might look familiar to fellow devs working with Elasticsearch:
Catalog Search index process error during indexation process:
index [magento244p13_product_1_v1] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block]
In plain terms: Elasticsearch panicked because disk usage passed the flood-stage watermark (typically 95%), so it slammed the brakes and marked the index as read-only. Magento couldn’t update the index because of it.
Here’s how I solved it, step-by-step.
Step 1: Check Disk Usage
First, I ran:
bash
df -h
Sure enough, my disk space was on the brink. A quick cleanup of old logs and unused packages brought it under control.
Step 2: Clear the Read-Only Block
After freeing space, I lifted the restriction on all indexes with:
bash
curl -XPUT -H "Content-Type: application/json" \
http://localhost:9200/_all/_settings \
-d '{"index.blocks.read_only_allow_delete": null}'
In stubborn cases, this broader setting can help:
bash
curl -XPUT -H "Content-Type: application/json" \
http://localhost:9200/_cluster/settings \
-d '{
"transient": {
"cluster.routing.allocation.disk.threshold_enabled": false
}
}'
Step 3: Reindex Magento
With the block removed, I ran:
bash
bin/magento indexer:reindex
And this time—no errors. Clean as a whistle.
Takeaway: Keep a close eye on your Elasticsearch node’s disk usage—especially in local or staging environments with limited storage. Flood-stage blocks are protective but disruptive. This simple reset can save hours of head-scratching.
Subscribe to my newsletter
Read articles from Fiko Borizqy directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Fiko Borizqy
Fiko Borizqy
I wrote these tutorials for myself in future when I forget for the next steps.