# ClusterBlockException: index [my_index] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]; disk usage exceeded flood-stage watermark

- **ID:** `elasticsearch/index-read-only-due-to-disk-threshold`
- **Domain:** elasticsearch
- **Category:** resource_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

The disk usage on a node has exceeded the flood-stage watermark (default 95%), causing Elasticsearch to automatically set the index to read-only to prevent data loss.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 7.17.10 | active | — | — |
| 8.6.2 | active | — | — |
| 8.11.0 | active | — | — |

## Workarounds

1. **Free disk space by deleting old indices or moving data to another node: DELETE /old_logs_index-2024-01 or use ILM to rollover. Then remove the block: PUT /my_index/_settings { "index.blocks.read_only_allow_delete": null }** (90% success)
   ```
   Free disk space by deleting old indices or moving data to another node: DELETE /old_logs_index-2024-01 or use ILM to rollover. Then remove the block: PUT /my_index/_settings { "index.blocks.read_only_allow_delete": null }
   ```
2. **Add more disk space to the node or move shards to nodes with more space using the Cluster Reroute API: POST /_cluster/reroute { "commands": [{ "move": { "index": "my_index", "shard": 0, "from_node": "full_node", "to_node": "free_node" } }] }** (85% success)
   ```
   Add more disk space to the node or move shards to nodes with more space using the Cluster Reroute API: POST /_cluster/reroute { "commands": [{ "move": { "index": "my_index", "shard": 0, "from_node": "full_node", "to_node": "free_node" } }] }
   ```

## Dead Ends

- **** — Without freeing disk space, the block will be re-applied by the disk threshold monitor within minutes. (95% fail)
- **** — This only postpones the issue and risks running out of disk completely, causing data corruption. (80% fail)
