Briefly, this error occurs when Elasticsearch encounters an issue while trying to update the state of a restore operation. This could be due to insufficient permissions, network connectivity issues, or a problem with the cluster state. To resolve this, you can check and adjust the permissions of the Elasticsearch user, ensure the network connectivity is stable, and verify the health of the Elasticsearch cluster. If the issue persists, you may need to restart the Elasticsearch service or, in extreme cases, perform a full cluster restart.
This guide will help you check for common problems that cause the log ” Failed to update restore state ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: restore.
Overview
In Elasticsearch, restore refers to the snapshot restore mechanism, which returns indices or clusters to a previous, saved state. You can restore the entire cluster from the snapshot or restore an individual index or selected indices.
Examples
To restore the whole snapshot:
POST /_snapshot/my_backup/snapshot-01-11-2019/_restore
To restore an individual index:
POST /_snapshot/my_backup/snapshot-01-11-2019/_restore { "indices": "my_index" }
Notes
- If you are using a security tool like Searchguard, the snapshot restore capability must be enabled in elasticsearch.yml. Otherwise, it will throw a security exception.
Common issues
- If an index or indices already exist with the same names as those you are going to restore, they need to either be closed or deleted before you can restore from a snapshot. Otherwise, the restore operation will fail due to an error that the index already exists.
Log Context
Log “Failed to update restore state ” classname is RestoreService.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :
} } } } catch (Exception t) { assert false : t; logger.warn("Failed to update restore state "; t); } } /** * Optionally updates index settings in indexMetadata by removing settings listed in ignoreSettings and