You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After #36, Elasticsearch restore completion requires every expected snapshot index to remain present with all primary shards active. This makes check-and-finalize --wait stick in IN_PROGRESS when ILM deletes restored data-stream backing indices before the check completes.
Reproduced repeatedly on stac-25604 with snapshot sts-backup-20260902-0300-pu2shn0iqlyuykt1ooqxuq:
snapshot state: SUCCESS (267/267 shards)
_cat/recovery?active_only=true: empty
all 145 recorded snapshot recoveries: done
cluster and data stream: green; no restore tasks or pending tasks
expected STS indices from snapshot: 109
expected indices still present: 92
missing indices: 17 .ds-sts_k8s_logs-* backing indices from August 26–27
sts_k8s_logs-policy deletes indices after 7 days
All 30 non-data-stream expected indices were present and healthy. The old log backing indices were eligible for ILM deletion, so the current exact-name predicate can never become true. Workloads remain scaled to zero and the restore lock remains held until the operator uses check-and-finalize --finalize-only. This happens more often than not during these restores.
After #36, Elasticsearch restore completion requires every expected snapshot index to remain present with all primary shards active. This makes
check-and-finalize --waitstick inIN_PROGRESSwhen ILM deletes restored data-stream backing indices before the check completes.Reproduced repeatedly on
stac-25604with snapshotsts-backup-20260902-0300-pu2shn0iqlyuykt1ooqxuq:SUCCESS(267/267 shards)_cat/recovery?active_only=true: emptydone.ds-sts_k8s_logs-*backing indices from August 26–27sts_k8s_logs-policydeletes indices after 7 daysAll 30 non-data-stream expected indices were present and healthy. The old log backing indices were eligible for ILM deletion, so the current exact-name predicate can never become true. Workloads remain scaled to zero and the restore lock remains held until the operator uses
check-and-finalize --finalize-only. This happens more often than not during these restores.Acceptance criteria: