Elasticsearch shard stuck INITIALIZING after disk-pressure eviction; recovery keeps failing with checksum mismatch
Environment
Self-hosted Elasticsearch 7.10 cluster: 5 data nodes, replication factor 1, daily indexing of time-series logs. One node experienced disk usage >95% triggering shard eviction and subsequent restart of that node.
Symptoms
Cluster health remains yellow; several shards show status INITIALIZING and never reach STARTED. Indexing continues on other shards but searches return partial results for affected indices. Recovery processes repeatedly attempt to copy segments but fail and retry.
Observations
Elasticsearch logs on the recovering node contain repeated entries like 'failed to copy blob ... checksum mismatch' and 'corrupt file detected, failing shard recovery'. The node with prior disk pressure shows IO errors in system dmesg around the time of eviction. 'GET /_cat/shards' shows those shards assigned to the affected node and stuck INITIALIZING. Snapshots exist for daily backups up to 24 hours prior to the event.
Already attempted
Restarted the affected node; increased 'cluster.routing.allocation.node_initial_primaries_recoveries' to limit concurrent recoveries; set 'cluster.routing.allocation.enable' to 'primaries' and back, attempted reroute of shards to other nodes, and used 'allocate_empty_primary' on one shard to bring it up (but that loses data for that shard). Attempted to run 'fsck' at OS level on the node's disks; SMART tests show some non-critical reallocated sectors but no outright failure.
Question
How should I safely recover these stuck INITIALIZING shards that log checksum or corruption errors without risking further data loss, and what diagnostics will confirm whether a restore from snapshot is required versus a local salvageable recovery?
Verified community troubleshooting
No answers yet..
Incident analysis
Most likely causes
Summary
Suggested Fixes
Continue troubleshooting
Related troubles
Matched from the title, description and tags