B2: How many times does Duplicati try to get an Upload URL when something goes wrong?

Lots of people just try again. My scheduled backup test did that automatically without me. There is actually some repair work possible when each backup starts, but repair (and recreate too) are less than perfect… Trying again is popular (though usually it’s not right after a bad recreate…). I’m just not sure how safe it is.

Eliminating all doubt is tough because the backups build on each other, however something like restoring the latest at least shows you can do that one, so maybe you’re fine going forward, and the latest probably shares blocks with old versions. How the backup process works is the technical explanation, but basically changes get uploaded, and non-changed blocks just point to old upload data that already has such blocks.

I think restore is quite careful to make sure that the restored file hashes match original hashes at backup, however there are also tools available that can compare trees, but studying changes could become tiring.

Your 2.0.4.22 has a more efficient Recreate. Presumably you’d notice it, if it was downloading all 300 GB?

You could also (before compact decides it’s time to rearrange files) look at backend files to see if you see signs of retry weirdness, e.g. if you have two dlist files with names one second apart, or dblocks with size that’s not 50 MB, or whatever your remote volume size is. A short one at the end would be normal though.

I’m sure hoping there’s not a delay (and plausibly there could be one) where an upload fails, Duplicati tries delete immediately, delete fails because the file’s not there, then the file shows up. B2 isn’t a simple write operation into a file (same might be true for other cloud services though). File needs to be processed first.

B2 Resiliency, Durability and Availability talks about this, and I suspect it all happens AFTER upload ends.

I guess there’s also a chance that someone else will show up with a solid and simple way to tell all is fine. That would certainly be something one would like in a backup program. I’m just not certain it’s done yet…

Sorry for being indefinite, but authoritative answers require a deep understanding of the code which I lack.