Issue Upgrading from Elasticsearch 8.19.4 to 9.1.4 – Indices Not Read-Only Despite Settings

Hi everyone,

We're in the process of upgrading our Elasticsearch cluster from version 8.12.0 to 9.1.4, following the recommended upgrade path. Here's what we've done so far:

  1. Upgraded from 8.12.0 → 8.19.4 (latest 8.x version).

  2. Set all indices to read-only, especially those originally created in version 7.x.

  3. Elasticsearch is running in a Docker container, behind Nginx.

However, during the upgrade to 9.1.4, the logs indicate that some indices are not read-only, which blocks the upgrade. This is confusing because we explicitly set them to read-only using:

PUT /_all/_settings
{
  "settings": {
    "index.blocks.write": true
  }
}

We’ve verified the settings via:

GET /_all/_settings?include_defaults=true

And the indices appear to have "index.blocks.write": true.

Has anyone encountered this issue during a similar upgrade? Could this be related to:

  • Docker volume persistence?

  • Nginx proxy interfering with API calls?

  • Indices from version 7.x needing additional steps?

Any insights or suggestions would be greatly appreciated!

Thanks in advance,

Rui