OpenSearch can set an index to read-only (or otherwise block writes) to protect cluster stability—most commonly when the flood-stage disk watermark is exceeded, or when an admin/automation sets index block flags.
Typical block settings on an index:
index.blocks.read_only_allow_delete = true
index.blocks.read_only = true
index.blocks.write = true
blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]
/_cat/indices?v
/{index}/_settings
# List indices and health curl -sS "$OS_URL/_cat/indices?v" # Show block-related settings across all indices curl -sS "$OS_URL/_all/_settings?flat_settings=true&filter_path=**.blocks.*" | jq # Inspect a specific index curl -sS "$OS_URL/<index>/_settings?flat_settings=true" | jq
Quick disk checks:
# Watermark configuration curl -sS "$OS_URL/_cluster/settings?include_defaults=true" # Node disk usage curl -sS "$OS_URL/_cat/allocation?v" curl -sS "$OS_URL/_cat/nodes?v&h=name,ip,diskAvail,diskUsedPct"
# Clear write-block flags on all indices curl -sS -X PUT "$OS_URL/_all/_settings" -H 'Content-Type: application/json' -d '{ "index.blocks.read_only_allow_delete": false, "index.blocks.read_only": false, "index.blocks.write": false }' # Reopen a closed index curl -sS -X POST "$OS_URL/<index>/_open"
Optional: tune watermarks (persistent):
curl -sS -X PUT "$OS_URL/_cluster/settings" -H 'Content-Type: application/json' -d '{ "persistent": { "cluster.routing.allocation.disk.watermark.low": "85%", "cluster.routing.allocation.disk.watermark.high": "90%", "cluster.routing.allocation.disk.watermark.flood_stage": "95%", "cluster.info.update.interval": "1m" } }'
Via Graylog UI
/_cat/aliases?v
read-only / allow delete
Check alias and index activity:
curl -sS "$OS_URL/_cat/aliases?v" curl -sS "$OS_URL/_cat/indices?v&s=pri.store.size:desc"
Was this article helpfu?
Thank you for voting
You are related to multiple companies. Please select the company you wish to login as.