Cannot restore incompatible snapshot – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-7.3

Briefly, this error occurs when you try to restore a snapshot that was created with a different, usually older, version of Elasticsearch. The snapshot and the Elasticsearch version you’re trying to restore it to are incompatible. To resolve this issue, you can either upgrade your Elasticsearch to the version compatible with the snapshot, or create a new snapshot with the current version of Elasticsearch. Alternatively, you can restore the snapshot to a compatible Elasticsearch version, reindex the data, and then take a new snapshot to restore on the current version.

This guide will help you check for common problems that cause the log ” cannot restore incompatible snapshot ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: snapshot, restore.

Log Context

Log “cannot restore incompatible snapshot” class name is RestoreService.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 final RepositoryData repositoryData = repository.getRepositoryData();
 final String snapshotName = request.snapshot();
 final Optional incompatibleSnapshotId =
 repositoryData.getIncompatibleSnapshotIds().stream().filter(s -> snapshotName.equals(s.getName())).findFirst();
 if (incompatibleSnapshotId.isPresent()) {
 throw new SnapshotRestoreException(repositoryName; snapshotName; "cannot restore incompatible snapshot");
 }
 final Optional matchingSnapshotId = repositoryData.getSnapshotIds().stream()
 .filter(s -> snapshotName.equals(s.getName())).findFirst();
 if (matchingSnapshotId.isPresent() == false) {
 throw new SnapshotRestoreException(repositoryName; snapshotName; "snapshot does not exist");

 

 [ratemypost]