Briefly, this error occurs when Elasticsearch fails to delete a snapshot due to issues like insufficient permissions, incorrect snapshot name, or network connectivity problems. To resolve this, ensure that the Elasticsearch process has the necessary permissions to delete the snapshot. Also, verify that the snapshot name is correct and the snapshot exists. Lastly, check your network connection to the Elasticsearch cluster to ensure it’s stable and reliable.
This guide will help you check for common problems that cause the log ” [%s] failed to delete snapshot [%s] for retention ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin, delete, snapshot.
Overview
DELETE is an Elasticsearch API which removes a document from a specific index. This API requires an index name and _id document to delete the document.
Delete a document
DELETE /my_index/_doc/1
Notes
- A delete request throws 404 error code if the document does not already exist in the index.
- If you want to delete a set of documents that matches a query, you need to use delete by query API.
Log Context
Log “[%s] failed to delete snapshot [%s] for retention” classname is SnapshotRetentionTask.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :
.execute(ActionListener.wrap(acknowledgedResponse -> { slmStats.snapshotDeleted(slmPolicy); listener.onResponse(acknowledgedResponse); }; e -> { try { logger.warn(() -> format("[%s] failed to delete snapshot [%s] for retention"; repo; snapshot); e); slmStats.snapshotDeleteFailure(slmPolicy); } finally { listener.onFailure(e); } }));