Can't recover from full OneDrive backup disk

My backup disk (Onedrive) is full … in fact it’s 42 GB over the 1TB limit. I guess that no file operations are possible until I delete files from the storage.

This appears to mean that cannot perform any restic operation now.

Every attempt results in an error like

Save(<lock/a9af20a9be>) returned error, retrying after 552.330144ms: server response unexpected: 500 Internal Server Error (500)

This includes restic snapshots and restic check.

restic unlock reports successfully removed locks, but doesn’t change the fact that no other commands work.

Am I screwed…? :frowning:

A workaround: you can install OneDrive client and use its ‘Files On-Demand’ feature

There is a Recovering from “no free space” errors section in the docs. Would that be a solution for you?

I don’t understand what the approach would be here - could you provide more details?

As far as I understand it, that page is about restic prune no longer working. I’ve never once executed a prune, nor have I deleted any snapshots, so I thought it didn’t apply.

I could try prune, but if I never deleted a snapshot, it wont have any effect, will it?

You can use rclone in a bit creative way:) You are using it now already I assume to connect to onedrive.

Create union of your onedrive (in no create mode) and local folder, something like this:

[onedrive]
...

[union]
type = union
upstreams = onedrive:path/to/restic:nc /local/folder

point your restic to union remote in next steps.

restic -r rclone:union

Run forget and prune. Any new files will be created in /local/folder (as onedrive upstream has nc set) but what has to be deleted will be deleted.

Use rclone to move all data from /local/folder to onedrive remote:

rclone move /local/folder onedrive:path/to/restic

done

My tip - when your remote storage has limited capacity always create placeholder.file there. Something like 1GB dummy file. This way if any program (like restic in your case) makes mistake and fills in all empty space you always have 1GB safety margin you can use (by deleting dummy file).

1 Like

Set up the OneDrive folder and enable the ‘Files On-Demand’. Restic can see all files but the files are downloaded only when restic requests them. And it can create files freely because it’s working on your local disk. Run restic prune / forget on the repository in the local OneDrive folder until OneDrive storage used is less than 100%. After OneDrive synchronizes all files, you can uninstall OneDrive.

BTW - maybe things changed but historically this client was disaster. I would not even try to use it in this case where there are thousands of files.

2 Likes

I used it a few months ago. It worked charmingly.

Have you tried it with 1TB of data and tens of thousands of files? As it is what will be situation here…

It might work though but I would consider it risky. I had issues with it in the past with much smaller datasets.

Either way I would first backup all data from this onedrive. Then worst case I would have all repo locally and could always prune it and upload back.

Yes. Over 1024GiB several GiB

Sounds sort of adventurous, but maybe it will work - I will give it a try.

Nothing personal @atentonfle , but I’m also somewhat sceptical regarding the onedrive client and fear I might end up with two problems instead of the one I have now :slight_smile: This would be my Plan B.

Thanks for the input so far, I will report back whenever I get the chance to try these things out.

1 Like

< posted in error >