diff --git a/pkg/etcd/s3.go b/pkg/etcd/s3.go index 6af4c4d27a8a..ad6a4dbd6ca3 100644 --- a/pkg/etcd/s3.go +++ b/pkg/etcd/s3.go @@ -334,7 +334,12 @@ func (s *S3) deleteSnapshot(ctx context.Context, key string) error { ctx, cancel := context.WithTimeout(ctx, s.config.EtcdS3Timeout) defer cancel() - key = path.Join(s.config.EtcdS3Folder, key) + // verifys if the folder was added before the key to delete the snapshot + // since the retention can't delete the snapshot if has the s3 folder pre defined + if !strings.Contains(key, s.config.EtcdS3Folder+"/") { + key = path.Join(s.config.EtcdS3Folder, key) + } + err := s.client.RemoveObject(ctx, s.config.EtcdS3BucketName, key, minio.RemoveObjectOptions{}) if err == nil || isNotExist(err) { metadataKey := path.Join(path.Dir(key), metadataDir, path.Base(key))