Hello @rossdav and welcome to the forum!
Should probably narrow the scope of the issue, because the error message has suggested two cases.
What OS is this? Available tools vary, and the database on Windows is scrambled to be harder to read.
Not quite following. After fine and fine, looks like database work, then is “was the same” fine or the same error on a different remote file (presumably a different restore would usually need to use a different file)?
Did you save any old databases? “Delete and Repair” sounds like the “Recreate” button tried to recreate, and I guess it worked because you didn’t say it didn’t (but that’s sort of odd IF you have bad remote files).
A note on Verify Files (a.k.a. test) is that it downloads only a sample, though it can test all files if you want. Because B2 charges for downloads, it might be best to start with close look at few files, i.e. known errors.
Can you get duplicati-b4f95c396a5e443738ebc57d761a95047.dblock.zip.aes using B2 web UI, and try to decrypt it with AES Crypt or command line tool SharpAESCrypt.exe in the Duplicati folder? Its use is like:
C:\Program Files\Duplicati 2>SharpAESCrypt.exe help
Usage: SharpAESCrypt e|d[o][1-4] <password> [<fromPath> [<toPath>]]
Use 'e' or 'd' to specify operation: encrypt or decrypt.
Append an 'o' to the operation for optimistic mode. This will skip some tests and leaves partial/invalid files on disk.
Append a single number (up to 4) to the operation to set the number of threads used for crypting. Default is single thread mode (1).
If you ommit the fromPath or toPath, stdin/stdout are used insted, e.g.:
SharpAESCrypt e 1234 < file.jpg > file.jpg.aes
Abnormal exit will return an errorlevel above 0 (zero):
4 - Password invalid
3 - HMAC Mismatch / altered data (also invalid password for version 0 files)
2 - Missing input stream / input file not found
1 - Any other cryptographic or IO exception
C:\Program Files\Duplicati 2>
If it decrypts, this implies that the password is what you think it is, and the integrity check built in file is OK.
Another possibility is that the error message is just the result of a failure to download. Your log shows five tries, which is the default maximum but can be changed by –number-of-retries. Check for network issues, e.g. try an internet speed test. Watch (e.g. in About → Show log → Live for retries. Too many is not good.