Hi all,
I'm attempting to restore a snapshot from an Elasticsearch 8.7.1 cluster into a 9.0.1 cluster running via ECK on AWS EKS. I have full access to both clusters.
The snapshot was taken in 8.7.1 and includes some older indices originally created in version 7.4.2 ("index.version.created": 7040299
). The restore fails on those indices with the following error:
"[my-snapshot-repository:daily-snap-...] cannot restore index [[my_index/...]] because it cannot be upgraded"
The index [my_index/...] created in version [7.4.2] with current compatibility version [7.4.2] must be marked as read-only using the setting [index.blocks.write] set to [true] before upgrading to 9.0.1.
Here’s what I’ve tried:
- On the 8.7.1 cluster, I set
index.blocks.write=true
for the affected index and took a new snapshot. - Restore to 9.0.1 still failed with the same error.
- I then also set
index.blocks.read_only=true
, re-snapshotted, and tried again — still the same failure. - To close the index and ensure it was in a clean state, I reverted
index.blocks.read_only=false
, closed the index, and took yet another snapshot — still no change in the error.
I’m explicitly not restoring global state or system indices, only the user index.
My Questions:
- Am I missing something about how
index.blocks.write=true
needs to be set for the upgrade path to work? - Is there a reliable way to confirm that
index.blocks.write=true
is truly persisted in the snapshot? - Is there any way to inspect index metadata or settings (e.g.,
index.blocks.*
) in the snapshot, without restoring it? - Is the only remaining option to reindex these indices into v8.7.1 — or is there a better workaround to avoid that (some of them are quite large)?
Any help or insights would be much appreciated — I’ve reviewed the docs and forums but can’t find a definitive answer on why the setting isn’t being respected during the restore.
Thanks in advance!