Skip to content

Possibly erroneus "Fatal: repository contains errors" from check #5467

@Fjodor42

Description

@Fjodor42

Output of restic version

restic 0.18.0 compiled with go1.24.1 on linux/amd64

What backend/service did you use to store the repository?

Rclone (rclone v1.69.3), Jottacloud backend

Problem description / Steps to reproduce

I have switched cloud storage providers, moving repository data with rclone.

I don't know if the following is an artefact of the initial transfer, problems with the repository as such, or a bug in Restic.

What I note is that:

  1. The Rclone part give occasional errors, prompting retries, after which Restic reports check successful on second attempt and the "original error", which seems to indicate that all is well after all, but
  2. In the end, Restic reports The repository is damaged and must be repaired. Please follow the troubleshooting guide at https://restic.readthedocs.io/en/stable/077_troubleshooting.html .

It's the mismatch between check successful on second attempt in part 1. and The repository is damaged and must be repaired. Please follow the troubleshooting guide at https://restic.readthedocs.io/en/stable/077_troubleshooting.html . that confuses me.

It is possible that part 2. stems from an actual error with the data, but as far as I read the output, the only errors reported are the "original errors" from the attempt where Rclone errored out, but I don't feel confident stating whether the final error message is correct or not.

Command:

restic -r rclone:jottacloud:///<redacted> -o rclone.args='serve restic --stdio --retries 10 --transfers 8' check --read-data -verbose --password-file <redacted>

Output:

using temporary cache in /tmp/restic-check-cache-2026371542
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs
[0:12] 100.00%  17 / 17 snapshots
read all data
rclone: 2025/08/05 15:32:43 ERROR : data/9c/9ca4ca33715e9be047c89fedbe724435e8d8f3a1cee7ea0b2a6d524aebfede3e: Didn't finish writing GET request (wrote 30901086/33842161 bytes): read tcp [redacted]:51618->[redacted]:443: read: connection reset by peer
Load(<data/9ca4ca3371>, 33842161, 0) returned error, retrying after 1.082796111s: readFull: unexpected EOF
rclone: 2025/08/05 15:32:43 ERROR : data/7c/7ca6e064b3a33cc5ca305e7cffc5f1ac41ec8a35ab9376a6d22499ec4506d3d6: Didn't finish writing GET request (wrote 30749503/33918928 bytes): read tcp [redacted]:55414->[redacted]:443: read: connection reset by peer
Load(<data/7ca6e064b3>, 33918928, 0) returned error, retrying after 871.35598ms: readFull: unexpected EOF
Load(<data/7ca6e064b3>, 33918928, 0) operation successful after 1 retries
Load(<data/9ca4ca3371>, 33842161, 0) operation successful after 1 retries
check successful on second attempt, original error pack 9ca4ca33715e9be047c89fedbe724435e8d8f3a1cee7ea0b2a6d524aebfede3e contains 6 errors: [blob 6160a37d019170b93a05ebad9974dc422413c084dd8444b667131ac491f6aceb: decrypting blob <data/6160a37d> from 9ca4ca33 failed: ciphertext verification failed blob 0da89eca35ddb464348ade671cfa1a30244887cca5ef97499fa7acbbbe7c7abe: decrypting blob <data/0da89eca> from 9ca4ca33 failed: ciphertext verification failed blob a17ce60a2b6bb7d835f7ea5452f37729a1cab320117a4fe1cf56e944e7710027: decrypting blob <data/a17ce60a> from 9ca4ca33 failed: ciphertext verification failed blob 9475aeb85abbed593b459663953ed48bdb510321de0899f8006283d952e41f61: decrypting blob <data/9475aeb8> from 9ca4ca33 failed: ciphertext verification failed blob 9635b2e959cf3d3eca8aecd0717e9d17d8a031a2e705d8a67200a31fbb2e7067: decrypting blob <data/9635b2e9> from 9ca4ca33 failed: ciphertext verification failed blob 32200a5192da602d10665390b48b1855bdaafb90eaf9d2c20643ca432ddac77c: decrypting blob <data/32200a51> from 9ca4ca33 failed: ciphertext verification failed]
rclone: 2025/08/05 15:32:47 ERROR : data/6c/6c298387b914372373a119b48989d6e8ef4cbf7a4e1a97d6d9434eb863f716ea: Didn't finish writing GET request (wrote 32081887/34393648 bytes): read tcp [redacted]:59376->[redacted]:443: read: connection reset by peer
Load(<data/6c298387b9>, 34393648, 0) returned error, retrying after 1.116876056s: readFull: unexpected EOF
check successful on second attempt, original error pack 7ca6e064b3a33cc5ca305e7cffc5f1ac41ec8a35ab9376a6d22499ec4506d3d6 contains 6 errors: [blob 876b05275cb069fcff970a8a0d992ed41997428d90f634d1e05c649659654860: decrypting blob <data/876b0527> from 7ca6e064 failed: ciphertext verification failed blob 58801b5a7f84a1d4ae84ee0d40c05fc1d31ef1f12f6ab85b7f447ffa80dede11: decrypting blob <data/58801b5a> from 7ca6e064 failed: ciphertext verification failed blob 3805021cc27d5050b0298114e16d6f369a0ddf4d046850ebc16788df9f19dbd5: decrypting blob <data/3805021c> from 7ca6e064 failed: ciphertext verification failed blob bd0be0f53880f5f8aaf25acda4169ce42af3bb2a72da2944015697bab00877b8: decrypting blob <data/bd0be0f5> from 7ca6e064 failed: ciphertext verification failed blob 6857a4ffa10db45d63783b7c397cade1910c1ac2705e7b0960280f038e27809e: decrypting blob <data/6857a4ff> from 7ca6e064 failed: ciphertext verification failed blob c5777ae70895872c254a4f755d9af061ea053da0093344cd34472c837b555903: decrypting blob <data/c5777ae7> from 7ca6e064 failed: ciphertext verification failed]
Load(<data/6c298387b9>, 34393648, 0) operation successful after 1 retries
check successful on second attempt, original error pack 6c298387b914372373a119b48989d6e8ef4cbf7a4e1a97d6d9434eb863f716ea contains 19 errors: [blob 38dc33f32f51997115df1769b2caf8c0ab1db8c51ecbf567e21e372f84253c53: decrypting blob <data/38dc33f3> from 6c298387 failed: ciphertext verification failed blob 0ca2d851c52245d3acc7a64d186d13016b4ac38d6059c82d46a291b12353d548: decrypting blob <data/0ca2d851> from 6c298387 failed: ciphertext verification failed blob 6ffc61c2577df50820cec0590bd58d74d1174e36769278dabdd9b6a2e71a4314: decrypting blob <data/6ffc61c2> from 6c298387 failed: ciphertext verification failed blob aa5ae656dd81e56af95869fc16dd0e8a559923722fc974db281d14981f97a07a: decrypting blob <data/aa5ae656> from 6c298387 failed: ciphertext verification failed blob bfbc84eafd7acc2762a23a606f8cc274a3aced3b58b97418ab779b4a969dadfc: decrypting blob <data/bfbc84ea> from 6c298387 failed: ciphertext verification failed blob 60a38a1b7158e0eec8e543356d7c7b39d8616366b80d2a3e8348924b47e3ffa5: decrypting blob <data/60a38a1b> from 6c298387 failed: ciphertext verification failed blob 54d7efdfd65393671eb883d50d0f313977bac517bacc4e257f4d78f64357550b: decrypting blob <data/54d7efdf> from 6c298387 failed: ciphertext verification failed blob f5aeb75305977a4fdf2fa47fd8b8e19ce0463f64a0bca31d3d39c5c99b62531a: decrypting blob <data/f5aeb753> from 6c298387 failed: ciphertext verification failed blob b0fede8707d4a867f1061199d4fa1d3627f13ae6834288e2265166aff4df619f: decrypting blob <data/b0fede87> from 6c298387 failed: ciphertext verification failed blob 7c6de43afd1b4fe22ca96874d6398d0ed0f9cf2517590adff7a036cf4f625dce: decrypting blob <data/7c6de43a> from 6c298387 failed: ciphertext verification failed blob 14918e772c0a0a6cf099db8040203e464428375fa6b4f27cc586a4c7ca05278e: decrypting blob <data/14918e77> from 6c298387 failed: ciphertext verification failed blob 6eca2391e4d19fc8aa23159cfeef72d1184bd3e779d4d3f06a2d8e124b64d8d0: decrypting blob <data/6eca2391> from 6c298387 failed: ciphertext verification failed blob 665e3958bef12138358ccfb02d178bedc5cd08a7ed52b26f4a319e1f83a44f3d: decrypting blob <data/665e3958> from 6c298387 failed: ciphertext verification failed blob 5253c7f67e4de15d0daf3bac2634e4cbf1945c6113a6ac0ab2010bc3ded822ed: decrypting blob <data/5253c7f6> from 6c298387 failed: ciphertext verification failed blob fd4b9f5ee18e4918c54b157cadfc77e281add8101b298a2268e5b6c56a277491: decrypting blob <data/fd4b9f5e> from 6c298387 failed: ciphertext verification failed blob 7dca131fce5d243ca4f9bb4777b68d40ae4828def853be0ca2f5ffe2b6f655a1: decrypting blob <data/7dca131f> from 6c298387 failed: ciphertext verification failed blob c87967bfdc3b48c6932b996ce9b5c4c224300ab71878aa7960a00660a6315e0d: decrypting blob <data/c87967bf> from 6c298387 failed: ciphertext verification failed blob c83ac9d5da62b76c1a88b5e2ce537b4318035cddd95c79ccc0a76e622abfc539: decrypting blob <data/c83ac9d5> from 6c298387 failed: ciphertext verification failed blob 5c9c229af28d47c67f2d77e8202114dd2aac00d1ed399568a0b435289dfd16e8: decrypting blob <data/5c9c229a> from 6c298387 failed: ciphertext verification failed]
Load(<data/1f1ab66292>, 33701200, 0) returned error, retrying after 1.064533446s: <data/1f1ab66292> does not exist
Load(<data/1f1ab66292>, 33701200, 0) returned error, retrying after 2.01645388s: <data/1f1ab66292> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 1.135129609s: <data/8faca86749> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 2.370685129s: <data/8faca86749> does not exist
Load(<data/1f1ab66292>, 33701200, 0) returned error, retrying after 3.550699187s: <data/1f1ab66292> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 4.156140734s: <data/8faca86749> does not exist
Load(<data/1f1ab66292>, 33701200, 0) returned error, retrying after 4.61652218s: <data/1f1ab66292> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 4.87283443s: <data/8faca86749> does not exist
Load(<data/1f1ab66292>, 33701200, 0) operation successful after 4 retries
Load(<data/8faca86749>, 33680891, 0) failed: <data/8faca86749> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 1.081230597s: <data/8faca86749> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 1.368249739s: <data/8faca86749> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 3.134839309s: <data/8faca86749> does not exist
Load(<data/8faca86749>, 33680891, 0) returned error, retrying after 11.721160688s: <data/8faca86749> does not exist
Load(<data/8faca86749>, 33680891, 0) failed: <data/8faca86749> does not exist
download error: <data/8faca86749> does not exist
Load(<data/1f01a998ef>, 33335199, 0) returned error, retrying after 807.575159ms: <data/1f01a998ef> does not exist
Load(<data/1f01a998ef>, 33335199, 0) returned error, retrying after 1.106164208s: <data/1f01a998ef> does not exist
Load(<data/3fc976dcc6>, 35423876, 0) returned error, retrying after 707.481939ms: <data/3fc976dcc6> does not exist
Load(<data/1f01a998ef>, 33335199, 0) operation successful after 2 retries
Load(<data/3fc976dcc6>, 35423876, 0) operation successful after 1 retries

[5:34:26] 100.00%  18281 / 18281 packs
The repository is damaged and must be repaired. Please follow the troubleshooting guide at https://restic.readthedocs.io/en/stable/077_troubleshooting.html .

Fatal: repository contains errors

Expected behavior

restic check reports Fatal: repository contains errors only if the checks that give errors during the run don't succeed on subsequent attempts.

To further limit confusion, there could be variants over the following:

  1. No errors yield the appropriate message as usual
  2. Errors that succeeded on subsequent yield a message along the lines of "errors were seen during the run, but they succeed on subsequent attempts, so the repository data is sound"
  3. If errors occur, and one or more of them don't succeed on subsequent attempts, yield an error message that only specify the ones that didn't eventually succeed

Actual behavior

Fatal: repository contains errors is reported, but is not obvious to me whether this refers to errors that eventually succeed, or if one or more did not succeed at all.

Do you have any idea what may have caused this?

One of the following, the correct one being unknown to me:

  1. Errors were reported during the run, one or more of which did not eventually succeed
    1.1. In this case, the final error message is correct, but output is confusing
  2. Errors were reported during the run, all of which eventually succeed, but a flag in the code that errors occurred wasn't cleared
    2.1. In this case, the final error message is wrong, and the output is still confusing

Did restic help you today? Did it make you happy in any way?

It usually does, and whereas what prompted me to write this is confusing, a resolution to it will make me fully happy again, as opposed to "only happy with all the other stuff that I usually am happy about :-)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions