diff --git a/changelog/unreleased/plul-2321 b/changelog/unreleased/plul-2321
new file mode 100644
index 000000000..a8e69e048
--- /dev/null
+++ b/changelog/unreleased/plul-2321
@@ -0,0 +1,8 @@
+Bugfix: Check errors when loading index files
+
+Restic now checks and handles errors which occur when loading index files, the
+missing check leads to odd errors (and a stack trace printed to users) later.
+This was reported in the forum.
+
+https://github.com/restic/restic/pull/2321
+https://forum.restic.net/t/check-rebuild-index-prune/1848/13
diff --git a/internal/repository/repository.go b/internal/repository/repository.go
index cb78c25c1..0c71fb3bb 100644
--- a/internal/repository/repository.go
+++ b/internal/repository/repository.go
@@ -440,6 +440,10 @@ func (r *Repository) LoadIndex(ctx context.Context) error {
 				idx, buf, err = LoadIndexWithDecoder(ctx, r, buf[:0], fi.ID, DecodeOldIndex)
 			}
 
+			if err != nil {
+				return errors.Wrap(err, fmt.Sprintf("unable to load index %v", fi.ID.Str()))
+			}
+
 			select {
 			case indexCh <- idx:
 			case <-ctx.Done():
@@ -475,7 +479,7 @@ func (r *Repository) LoadIndex(ctx context.Context) error {
 
 	err := wg.Wait()
 	if err != nil {
-		return err
+		return errors.Fatal(err.Error())
 	}
 
 	// remove index files from the cache which have been removed in the repo