I’ve been trying to use OneDrive as my restic backend – which is supported through the rclone backend. Using this, restic can use any backend that rclone supports, which is very cool. However, it has revealed that the OneDrive API is very buggy and unreliable! I’m surprised by how many issues I’ve been getting.
I’m mostly seeing issues using the
restic check command, which confirms your backup files are not corrupted. When running the same check command 4 times, 3 out of 4 I get an error that one data block is missing, however I can see it is there, the fetching of it just fails.
The check command I am using is:
restic -vvv check --read-data-subset 68/112
The errors that I’m getting look like this:
You can see that the low-level retries has hit 10/10 on this request, so it will be rejected entirely. As far as I can tell it seems to be entirely just bugs in the OneDrive API backend. When I retry the whole check later, I will often get a data block error, but saying a different data block is missing.
# In Fish Shell # Before running the checks you can export some environment variables to get extra info # To set rclone to DEBUG mode - will generate a lot of logs set -x RCLONE_LOG_LEVEL DEBUG # To set the rclone transaction limiter (doesn't seem to help, but I tried it) set -x RCLONE_TPSLIMIT 1 # Can use tee to capture the very long log files created restic -vvv check --read-data-subset 68/112 2>&1 | tee ~/68_112_check_attempt_4.log
I have not found a solution, apart from just moving away from OneDrive, but thought I would post so others could find this post if they have similar errors.