2.0.8.1 update issue: broken file and no more backup

Right after the update, my next backup failed.

2024-05-11 18:13:15 +08 - [Error-Duplicati.Library.Main.Operation.BackupHandler-FatalError]: Fatal error
FileNotFoundException: Could not find file ‘\?\N:\Backup\Duplicati\PA\duplicati-bdd360062d64b4c49ab31f31c1e00baef.dblock.zip.aes’.

I tried running repair, to no avail. I tried recreating the database, and the system told me it couldn’t, and to run list-broken-files and purge-broken-files. It found ten broken files (all the same file, but for different backup dates) but purge-broken-files failed:

Uploading file duplicati-20230608T110001Z.dlist.zip.aes (16.68 MB) …
Uploading file duplicati-20230608T110002Z.dlist.zip.aes (16.68 MB) …
Uploading file duplicati-20230608T110003Z.dlist.zip.aes (16.68 MB) …
Uploading file duplicati-20230608T110004Z.dlist.zip.aes (16.68 MB) …
Uploading file duplicati-20230608T110005Z.dlist.zip.aes (16.68 MB) …
The operation PurgeBrokenFiles has failed with error: One or more errors occurred. => One or more errors occurred.

System.AggregateException: One or more errors occurred. —> System.IO.FileNotFoundException: Could not find file ‘\?\N:\Backup\Duplicati\PA\duplicati-20230608T110005Z.dlist.zip.aes’.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of inner exception stack trace —
at Duplicati.Library.Main.BackendManager.Put(VolumeWriterBase item, IndexVolumeWriter indexfile, Action indexVolumeFinishedCallback, Boolean synchronous)
at Duplicati.Library.Main.Operation.PurgeFilesHandler.DoRun(LocalPurgeDatabase db, IFilter filter, Action3 filtercommand, Single pgoffset, Single pgspan) at Duplicati.Library.Main.Operation.PurgeBrokenFilesHandler.Run(IFilter filter) at Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Action1 method)
at Duplicati.Library.Main.Controller.PurgeBrokenFiles(IFilter filter)
at Duplicati.CommandLine.Commands.PurgeBrokenFiles(TextWriter outwriter, Action1 setup, List1 args, Dictionary2 options, IFilter filter) at Duplicati.CommandLine.Program.ParseCommandLine(TextWriter outwriter, Action1 setup, Boolean& verboseErrors, String args)
at Duplicati.CommandLine.Program.RunCommandLine(TextWriter outwriter, TextWriter errwriter, Action`1 setup, String args)
—> (Inner Exception #0) System.IO.FileNotFoundException: Could not find file ‘\?\N:\Backup\Duplicati\PA\duplicati-20230608T110005Z.dlist.zip.aes’.
File name: ‘\?\N:\Backup\Duplicati\PA\duplicati-20230608T110005Z.dlist.zip.aes’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()<—
Return code: 100

Duplicati is great when it works, but it’s too fragile. One missing or damaged file shouldn’t prevent all subsequent backups – which is currently the case. No more backup.

What did you update from?

Any more context below that? You could try looking in server log at About → Show log → Stored for 18:13.
If it’s there, you might be able to click the entry to expand it. This little snippet by itself doesn’t reveal much.

Unfortunately that destroys history, including logs. Got other clues about history, beyond what’s here?

Did that take awhile then error at the end? Got an exact message? Did you watch progress bar at top?

A purge is a database adjustment in response to things like missing dblock files (maybe the one named), followed by revision to the destination records. Do the dlist dates look like “different backup dates” seen?

Seemingly it was making its way through the updates, then

This one is interesting because it seems like upload to a backup area that didn’t actually leave a file.
Is Destination Storage type set to Local folder or drive, and pointed at that path? Is it a regular drive?
Network or other virtual drives might see other issues. Does it have a space quota? Has it filled up?

Not sure I agree with that.

If the remote files are missing or damaged, you will have a big surprise when you need to restore. I think it is better to figure out why the file is suddenly missing or damaged. It is likely a sign of something else being broken, and blindly continuing a backup on top of something broken is not likely to produce a restore-able backup.

But I do agree that not running any more the backups is both inconvenient and problematic.

This one is interesting, because it is not a missing file.
It is failing to create a new file at the destination and this operation gives FileNotFound, indicating something else is wrong.
Any chance the N: is a mounted folder and the server/connection dropped?
Is something blocking the file, like antivirus, or similar?

What did you update from?

I don’t know. The most recent before the latest, I would guess.

Got other clues about history, beyond what’s here?

Nope. :frowning:

Did that take awhile then error at the end? Got an exact message? Did you watch progress bar at top?

Yes, it took a (long) while. The progress bar was progressing all along. The message I got at the end was:

Recreated database has missing blocks and 10 broken filelists. Consider using “list-broken-files” and “purge-broken-files” to purge broken data from the remote store and the database.

Do the dlist dates look like “different backup dates” seen?

I don’t understand. My knowledge is very limited.

This one is interesting because it seems like upload to a backup area that didn’t actually leave a file.
Is Destination Storage type set to Local folder or drive, and pointed at that path? Is it a regular drive?
Network or other virtual drives might see other issues. Does it have a space quota? Has it filled up?

The destination folder is on a virtual drive. It’s worked welll for the past couple of years. There’s no space quota and the disk isn’t full.

Any chance the N: is a mounted folder and the server/connection dropped?

It’s a mounted virtual drive, but the connection didn’t drop.

Is something blocking the file, like antivirus, or similar?

No, nothing had changed between the last successful backup (30 minutes before) and the failed one, except for the update.

I made another backup attempt and got this:

Found 5854 remote files that are not recorded in local storage, please run repair

How did it go from 1 bad file to 5854??

Repair failed.

My secondary backup, on another disk, also failed:

  • 2024-05-14 16:50:13 +08 - [Error-Duplicati.Library.Main.Operation.BackupHandler-FatalError]: Fatal error AggregateException: One or more errors occurred.
  • 2024-05-14 16:50:13 +08 - [Error-Duplicati.Library.Main.Controller-FailedOperation]: The operation Backup has failed with error: One or more errors occurred. AggregateException: One or more errors occurred.

Both backups had been running for two years, until I made the update. Now it seems I’ve lost everything. Here’s the log:

System.AggregateException: One or more errors occurred. —> System.AggregateException: One or more errors occurred. —> System.AggregateException: One or more errors occurred. —> System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of inner exception stack trace —
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CoCoL.AutomationExtensions.d__101.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.BackupHandler.<FlushBackend>d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__20.MoveNext() --- End of inner exception stack trace --- at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__20.MoveNext() --- End of inner exception stack trace --- at CoCoL.ChannelExtensions.WaitForTaskOrThrow(Task task) at Duplicati.Library.Main.Controller.<>c__DisplayClass14_0.<Backup>b__0(BackupResults result) at Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Action1 method)
at Duplicati.Library.Main.Controller.Backup(String inputsources, IFilter filter)
at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)
—> (Inner Exception #0) System.AggregateException: One or more errors occurred. —> System.AggregateException: One or more errors occurred. —> System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of inner exception stack trace —
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CoCoL.AutomationExtensions.d__101.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.BackupHandler.<FlushBackend>d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__20.MoveNext() --- End of inner exception stack trace --- at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__20.MoveNext() ---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.IO.FileNotFoundException: Could not find file '\\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path) at Duplicati.Library.Backend.File.<PutAsync>d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<DoPut>d__24.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<<UploadFileAsync>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Duplicati.Library.Main.Operation.Backup.BackendUploader.<DoWithRetry>d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Duplicati.Library.Main.Operation.Backup.BackendUploader.<DoWithRetry>d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<UploadFileAsync>d__20.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<UploadBlockAndIndexAsync>d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<<Run>b__13_0>d.MoveNext() --- End of inner exception stack trace --- at Duplicati.Library.Main.Operation.Backup.BackendUploader.<<Run>b__13_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Duplicati.Library.Main.Operation.Backup.BackendUploader.<<Run>b__13_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at CoCoL.AutomationExtensions.<RunTask>d__101.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.BackupHandler.d__19.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.BackupHandler.d__20.MoveNext()
—> (Inner Exception #0) System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’.
File name: ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at

Continuing from last message:

System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()<—

—> (Inner Exception #1) System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b6f9045806e1e488987fad8eb65783fc6.dblock.zip.aes’.
File name: ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b6f9045806e1e488987fad8eb65783fc6.dblock.zip.aes’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()<—
<—

—> (Inner Exception #1) System.AggregateException: One or more errors occurred. —> System.AggregateException: One or more errors occurred. —> System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of inner exception stack trace —
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CoCoL.AutomationExtensions.d__101.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.BackupHandler.<FlushBackend>d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__20.MoveNext() --- End of inner exception stack trace --- ---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.IO.FileNotFoundException: Could not find file '\\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path) at Duplicati.Library.Backend.File.<PutAsync>d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<DoPut>d__24.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<<UploadFileAsync>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Duplicati.Library.Main.Operation.Backup.BackendUploader.<DoWithRetry>d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Duplicati.Library.Main.Operation.Backup.BackendUploader.<DoWithRetry>d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<UploadFileAsync>d__20.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<UploadBlockAndIndexAsync>d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Duplicati.Library.Main.Operation.Backup.BackendUploader.<<Run>b__13_0>d.MoveNext() --- End of inner exception stack trace --- at Duplicati.Library.Main.Operation.Backup.BackendUploader.<<Run>b__13_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Duplicati.Library.Main.Operation.Backup.BackendUploader.<<Run>b__13_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at CoCoL.AutomationExtensions.<RunTask>d__101.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.BackupHandler.d__19.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.BackupHandler.d__20.MoveNext()
—> (Inner Exception #0) System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’.
File name: ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b3425f8a1b3b740cb89dc9c8b757a7df0.dblock.zip.aes’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<b__13_0>d.MoveNext()<—

—> (Inner Exception #1) System.IO.FileNotFoundException: Could not find file ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b6f9045806e1e488987fad8eb65783fc6.dblock.zip.aes’.
File name: ‘\?\P:\Crypto Folder\Backup\Duplicati\PA\duplicati-b6f9045806e1e488987fad8eb65783fc6.dblock.zip.aes’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at Duplicati.Library.Common.IO.SystemIOWindows.FileCreate(String path)
at Duplicati.Library.Backend.File.d__23.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__24.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass20_0.<b__0>d.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__21.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__20.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.BackendUploader.d__18.MoveNext()<—
<—
<—
<—

Possibly it got all the way to the end. The last 10% is especially slow, as it’s trying really hard to find data.

Possibly due to the dblock file problem in original post, but possibly something else. Regardless, after the lengthy try, some blocks (pieces of source files) couldn’t be found, and files with missing blocks are called broken, and any backup versions they are in is also called broken. A filelist is similar to a version or a dlist.

This is beyond what one usually needs to know, but a backup version records what files it contains, in a file named like duplicati-20240513T134808Z.dlist.zip.aes, where you can see the UTC date in filename. Duplicati versions, e.g. as shown on Restore dropdown and mentioned in messages, match dlist names.

was asking if the dates you saw match the dates in the dlist files. In short, did you notice a June 8, 2023? Presumably you did, and the whole list of dates might be handy if you noted it. The later repetitions which increment the second are probably retries of the one attempted version save that virtual drive is refusing.

How is the P: drive related to the N: drive? Is it virtual too? Problem at first glance looks very similar to N:.

Why it’s refusing it is beyond me. What exactly is it? Maybe we should test it some to see if it still works.
Any other way to get to the data? The more direct the better. If there’s no direct, I assume you can get in using Explorer or Command Prompt. I don’t know why Duplicati would differ. It just treats it like any drive.

If you think a Duplicati update is the culprit, then everything else should work except for Duplicati access.

If the virtual drive has somehow become inaccessible to something, got any other spot you’d try instead?

EDIT:

For Command Prompt testing, you can probably even use similar paths to what is actually failing for you.

C:\>dir "\\?\C:\Program Files\Duplicati 2\Duplicati.GUI.TrayIcon.exe"

for example, is what you are probably running. The stuff before the drive letter is a special Windows thing.
You can omit it if you like, and then it’s basically a regular path that even File Explorer can let you test with.
When testing, creating a separate folder might be wise, as we don’t want to have accidents in the backup.

If you create a test folder, you can also test it with the Duplicati command line tools, for example there are:

Duplicati.CommandLine.BackendTool.exe for manual test, and
Duplicati.CommandLine.BackendTester.exe for automatic, with an empty folder to keep test very separate.

Export As Command-line can give you a starter URL to edit, but you can also use a quoted Windows path.

Note that Command Prompt might not always run as same user as Duplicati. How do you start Duplicati? Permissions of, say, a Windows service running as SYSTEM could be a lot different than running at login.

If you somehow had a user change during update, that could cause some access differences to the drive.
About → System info will show UserName that Duplicati is run as. Is it as expected? Does it have access?

Is it Dropbox or OneDrive?

I know they have started using file attributes to reduce the local disk space used.
For some operations, this results in unexpected errors.
If it is one of those (or a similar one) you can usually fix the problem by choosing “Offline copy” or something similar, so it keeps all files on disk.

If you still see the problem, could you roll back to the previous version?
If you are using the built-in updater, you can stop it, remove the folder under %APP_DATA%\Duplicati\updates\2.0.8.1 and start it again, and it should be reverted to the one before.

It could be related to the update, but it is unlikely as there has been no changes in the upload code. The only change in the file-based backend is an improvement for listing existing files. If we can rule that out, I think it will be easier to figure out what is going wrong.

ts678, I feel like I’ve been wasting your time, sorry. I used to be computer-savvy, but that was a long, long time ago. Moreover, some health issues have decreased my cognitive abilities. As a result, even though you’re kindly leading me step by step, I’m unable to follow you.

I can still restore files from past back-ups. I “just” cannot back up any longer. It seems that the only thing I can do is delete everything and start again from scratch, hoping I’ll never need an old file.

kenkendk:

One of the virtual drive is a TrueCrypt drive. The other is on pCloud. Both backups had been running since 2022. Both failed after the update. In the case of the TC drive, I try updating just before (worked) and just after (failed) the update. There was no disconnection, change of user, or any other change I can imagine. I could revert to the previous version, I realize, but I doubt it would help: now that there’s damage, there’s damage.

Maybe the damage was already there but the “old” version of Duplicati didn’t see it?

This error might be caused by a bug in compact which produces incorrect index files, which go undetected until a recreate is needed. In that case, #5068 might fix your backup data after a recreate. That still doesn’t explain why it failed in the first place.

This makes things harder.

If you are up for that, you can probably simply start a small test backup from scratch.

If it fails, it’s a simpler and safer debug. If it works, and you have space, you can keep
old backup around while we try to work with you to either figure out its issue, or assist
setting up an identical backup (is it now set up the way you like?) so you get backups.

EDIT:

Unless you delete the backup now (I’m advising don’t), then you may still be able to get files out of it:

Duplicati.CommandLine.RecoveryTool.exe

This tool can be used in very specific situations, where you have to restore data from a corrupted backup.

but it’s harder than the GUI.

There has been some general changes, but the exact place where it fails in the stack trace provided is where it attempts to create a file. The call is very simple and just calls the Windows system API to create a file. Nothing has been changed around that call, so I am quite sure something else is the cause.

Usually, if something is broken you will get “path not found” or “access denied”, but you are getting “file not found”.

I can find this post that mentions it can happen if “Windows Defender Ransomware Protection” deems the calling process untrustworthy.

I think this would explain it, if 2.0.7.1 was “trusted” and 2.0.8.1 is “suspicious”.

The thread suggests turning off the feature “Controlled Folder Access” in “Windows Defender Ransomware Protection” as a solution, but if someone knows how to “approve” Duplicati 2.0.8.1 instead, I think that is a safer approach.

Good line of thinking. It can be tested, for example by a small backup I suggest.

Allow specific apps to make changes to controlled folders appears to be one way.

If the app (with the same name) is in a different location, it will not be added to the allowlist and may be blocked by controlled folder access.

Was the update done through Duplicati, or by installing from a downloaded .msi installer from web site?

The built-in Duplicati updater stores the same file names in a different place, not under C:\Program Files

This could also make it look suspicious to the security program. Do you have additional such programs?

Windows includes built-in ransomware protections. Here’s how to turn it on

says it’s off by default, but if you turned it on, that seems to also have a feature to show the block history:

image

taken from my PC after moving to switch to On just now. The menu items weren’t there before I did that.

Controlled folder access doesn’t have those on the default list, but “Protected folders” link can add them.

Whatever is going on is apparently doing interference on two locations all at the same time, so would be something in common such as perhaps a security program. The current autoupdater also can upset the Windows Firewall (requiring approval) because the location of the latest Duplicati went somewhere else.

Although I hope you can say how you updated, there are also clues at About → System info such as the
BaseVersionName (an original install) and ServerVersionName (different if you updated in Duplicati GUI).
UserName would be good to check to be sure it’s what you think it should be to write to both destinations.
What’s interesting is it seems you can read them, unless you used Advanced options to not do read first.

Or try to recall update method, or look in About → System info first to see if it looks like built-in updater ran.

Or to test the location-matters theory, I think installing from Duplicati Downloads will stay in Program Files.

I think this would explain it, if 2.0.7.1 was “trusted” and 2.0.8.1 is “suspicious”.

Possible, yes. I had added 2.0.7.1 as a trusted app, but not 2.0.8.1. Done now:

Old
New

Although I hope you can say how you updated

Directly via Duplicati (in the browser window). Should I do it again via the .msi?

What’s interesting is it seems you can read them,

I tried restoring one file and it worked, yes.

If it works, and you have space, you can keep old backup around while we try to work with you to either figure out its issue, or assist setting up an identical backup (is it now set up the way you like?) so you get backups.

I can keep the old backup for pCloud, because I have enough space, but not for the TC drive, because this external hard drive it is on is full and the other one just gave up the ghost last month (I need to go to a computer store see if they can extract the disk and switch the alimentation; hopefully the alimentation is the problem, not the disk).

And yes, my backups were set up the way I wanted them to be.

Probably not. as that would change Program Files version, and 2.0.7.1 didn’t need that. If I hadn’t known that you were whitelisting the updates (location varies), I might have thought you jumped from Program Files into updates on your first update, so lost whitelisted Program Files. In that case, I would have advised msi install which would have updated whitelisted Program Files version. Regardless, we’ll see if trusting 2.0.8.1 solves.

I get the same error message:

Recreated database has missing blocks and 10 broken filelists. Consider using “list-broken-files” and “purge-broken-files” to purge broken data from the remote store and the database.

It’s not going to magically repair existing damage, but the goal was to stop the weird rejection of files.

Can you please confirm that a small backup now works? No point fixing old damage if PC will refuse.