Ideas about "System.ArgumentNullException: Value cannot be null.", "Parameter name: path"

I’ve received this error a few times now.

I can repair the database successfully, and have completed at least one manual backup after a successful repair. But this error is occurring with most backup runs …

System.ArgumentNullException: Value cannot be null.
Parameter name: path
  at Duplicati.Library.Main.BackendManager.WaitForEmpty (Duplicati.Library.Main.Database.LocalDatabase db, System.Data.IDbTransaction transation) [0x00067] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.CompactHandler.DoDelete (Duplicati.Library.Main.Database.LocalDeleteDatabase db, Duplicati.Library.Main.BackendManager backend, System.Collections.Generic.IEnumerable`1[T] deleteableVolumes, System.Data.IDbTransaction& transaction) [0x00040] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.CompactHandler.DoCompact (Duplicati.Library.Main.Database.LocalDeleteDatabase db, System.Boolean hasVerifiedBackend, System.Data.IDbTransaction& transaction, Duplicati.Library.Main.BackendManager sharedBackend) [0x004a2] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.DeleteHandler.DoRun (Duplicati.Library.Main.Database.LocalDeleteDatabase db, System.Data.IDbTransaction& transaction, System.Boolean hasVerifiedBacked, System.Boolean forceCompact, Duplicati.Library.Main.BackendManager sharedManager) [0x00397] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.CompactIfRequired (Duplicati.Library.Main.BackendManager backend, System.Int64 lastVolumeSize) [0x000a5] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x01033] in <8f1de655bd1240739a78684d845cecc8>:0 
  at CoCoL.ChannelExtensions.WaitForTaskOrThrow (System.Threading.Tasks.Task task) [0x00050] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.Run (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00009] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Controller+<>c__DisplayClass14_0.<Backup>b__0 (Duplicati.Library.Main.BackupResults result) [0x0004b] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Controller.RunAction[T] (T result, System.String[]& paths, Duplicati.Library.Utility.IFilter& filter, System.Action`1[T] method) [0x0026f] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Controller.Backup (System.String[] inputsources, Duplicati.Library.Utility.IFilter filter) [0x00074] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Server.Runner.Run (Duplicati.Server.Runner+IRunnerData data, System.Boolean fromQueue) [0x00349] in <c5f097a49c0a4f1fb0f93cf3f5f218b1>:0 

This additional error occurs when/if a manual run is attempted after the above error, before a repair …

Duplicati.Library.Interface.UserInformationException: Found 1 remote files that are not recorded in local storage, please run repair
  at Duplicati.Library.Main.Operation.FilelistProcessor.VerifyRemoteList (Duplicati.Library.Main.BackendManager backend, Duplicati.Library.Main.Options options, Duplicati.Library.Main.Database.LocalDatabase database, Duplicati.Library.Main.IBackendWriter log, System.String protectedfile) [0x00103] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.PreBackupVerify (Duplicati.Library.Main.BackendManager backend, System.String protectedfile) [0x0010b] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x01033] in <8f1de655bd1240739a78684d845cecc8>:0 
  at CoCoL.ChannelExtensions.WaitForTaskOrThrow (System.Threading.Tasks.Task task) [0x00050] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.Run (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00009] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Controller+<>c__DisplayClass14_0.<Backup>b__0 (Duplicati.Library.Main.BackupResults result) [0x0004b] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Controller.RunAction[T] (T result, System.String[]& paths, Duplicati.Library.Utility.IFilter& filter, System.Action`1[T] method) [0x0026f] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Library.Main.Controller.Backup (System.String[] inputsources, Duplicati.Library.Utility.IFilter filter) [0x00074] in <8f1de655bd1240739a78684d845cecc8>:0 
  at Duplicati.Server.Runner.Run (Duplicati.Server.Runner+IRunnerData data, System.Boolean fromQueue) [0x00349] in <c5f097a49c0a4f1fb0f93cf3f5f218b1>:0 

There have been no recent changes to the backup settings, and weeks of successful backups until now. I’m unsure how to further track down the issue and repair it.

Any suggestions?

Thanks, in advance, for the attention.

I am also experiencing a similar error that has begun happening since upgrading to 2.0.5.1 beta:

System.ArgumentNullException: Path cannot be null.
Parameter name: path
   at Duplicati.Library.Main.BackendManager.WaitForEmpty(LocalDatabase db, IDbTransaction transation)
   at Duplicati.Library.Main.Operation.CompactHandler.DoDelete(LocalDeleteDatabase db, BackendManager backend, IEnumerable`1 deleteableVolumes, IDbTransaction& transaction)
   at Duplicati.Library.Main.Operation.CompactHandler.DoCompact(LocalDeleteDatabase db, Boolean hasVerifiedBackend, IDbTransaction& transaction, BackendManager sharedBackend)
   at Duplicati.Library.Main.Operation.DeleteHandler.DoRun(LocalDeleteDatabase db, IDbTransaction& transaction, Boolean hasVerifiedBacked, Boolean forceCompact, BackendManager sharedManager)
   at Duplicati.Library.Main.Operation.BackupHandler.CompactIfRequired(BackendManager backend, Int64 lastVolumeSize)
   at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   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, Action`1 method)
   at Duplicati.Library.Main.Controller.Backup(String[] inputsources, IFilter filter)
   at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)

The job in question is a ~300 GB daily backup that keeps the last 30 versions. The couple of times this has happen to me thus far, it has been in the compaction phase.

Edit: More relevant info:
Operating System: Windows Server 2012 R2
Backend: WebDAV (NextCloud)

Looks like it may be happening after a compaction is attempted.

What version of Duplicati are you using?
What back end?
What operating system and version? (If not Windows, also specify your mono version.)

@drwtsn32, Thanks for the reply.

I’m using the docker image (duplicati/duplicati) on a QNAP NAS.
The current version is 2.0.5.1_beta_2020-01-18.

Thanks @rivy, what back end are you using?

Actually these details may be irrelevant. I searched the forum for “WaitForEmpty” and there are a few threads already of other people having similar issues.

I use Compaction feature and am not personally seeing this on any of my systems running 2.0.5.1. (I have about 10…)

Backend: Backblaze B2

This is an intermittent (although frequent) failure. Additionally, I have other (smaller) backups to the same target backend which are completing without any issues.

I ran the compaction task again and watched it more closely this time. It appeared to work fine right up until this happened:

Mar 19, 2020 1:49 PM: The operation Compact has failed with error: Path cannot be null. Parameter name: path
Mar 19, 2020 1:49 PM: Backend event: Put - Failed: duplicati-i273c492075474319979462da9b1593bb.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Operation Put with file duplicati-i273c492075474319979462da9b1593bb.dindex.zip.aes attempt 5 of 5 failed with message: Path cannot be null. Parameter name: path
Mar 19, 2020 1:49 PM: Renaming "duplicati-ic8fd0a88d5bf4015a068713cfd61f86f.dindex.zip.aes" to "duplicati-i273c492075474319979462da9b1593bb.dindex.zip.aes"
Mar 19, 2020 1:49 PM: Backend event: Put - Rename: duplicati-i273c492075474319979462da9b1593bb.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Backend event: Put - Rename: duplicati-ic8fd0a88d5bf4015a068713cfd61f86f.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Backend event: Put - Retrying: duplicati-ic8fd0a88d5bf4015a068713cfd61f86f.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Operation Put with file duplicati-ic8fd0a88d5bf4015a068713cfd61f86f.dindex.zip.aes attempt 4 of 5 failed with message: Path cannot be null. Parameter name: path
Mar 19, 2020 1:49 PM: Renaming "duplicati-ia4ee67e1a4474b06bc7a58fd1b09b6e2.dindex.zip.aes" to "duplicati-ic8fd0a88d5bf4015a068713cfd61f86f.dindex.zip.aes"
Mar 19, 2020 1:49 PM: Backend event: Put - Rename: duplicati-ic8fd0a88d5bf4015a068713cfd61f86f.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Backend event: Put - Rename: duplicati-ia4ee67e1a4474b06bc7a58fd1b09b6e2.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Backend event: Put - Retrying: duplicati-ia4ee67e1a4474b06bc7a58fd1b09b6e2.dindex.zip.aes ()
Mar 19, 2020 1:49 PM: Operation Put with file duplicati-ia4ee67e1a4474b06bc7a58fd1b09b6e2.dindex.zip.aes attempt 3 of 5 failed with message: Path cannot be null. Parameter name: path
Mar 19, 2020 1:48 PM: Renaming "duplicati-i125c1168e5934518aa127e4fb24da668.dindex.zip.aes" to "duplicati-ia4ee67e1a4474b06bc7a58fd1b09b6e2.dindex.zip.aes"
Mar 19, 2020 1:48 PM: Backend event: Put - Rename: duplicati-ia4ee67e1a4474b06bc7a58fd1b09b6e2.dindex.zip.aes ()
Mar 19, 2020 1:48 PM: Backend event: Put - Rename: duplicati-i125c1168e5934518aa127e4fb24da668.dindex.zip.aes ()
Mar 19, 2020 1:48 PM: Backend event: Put - Retrying: duplicati-i125c1168e5934518aa127e4fb24da668.dindex.zip.aes ()
Mar 19, 2020 1:48 PM: Operation Put with file duplicati-i125c1168e5934518aa127e4fb24da668.dindex.zip.aes attempt 2 of 5 failed with message: Path cannot be null. Parameter name: path
Mar 19, 2020 1:48 PM: Renaming "duplicati-i93d47cd424824be0a4bcebab4e2a9899.dindex.zip.aes" to "duplicati-i125c1168e5934518aa127e4fb24da668.dindex.zip.aes"
Mar 19, 2020 1:48 PM: Backend event: Put - Rename: duplicati-i125c1168e5934518aa127e4fb24da668.dindex.zip.aes ()
Mar 19, 2020 1:48 PM: Backend event: Put - Rename: duplicati-i93d47cd424824be0a4bcebab4e2a9899.dindex.zip.aes ()
Mar 19, 2020 1:48 PM: Backend event: Put - Retrying: duplicati-i93d47cd424824be0a4bcebab4e2a9899.dindex.zip.aes ()
Mar 19, 2020 1:48 PM: Operation Put with file duplicati-i93d47cd424824be0a4bcebab4e2a9899.dindex.zip.aes attempt 1 of 5 failed with message: Path cannot be null. Parameter name: path
Mar 19, 2020 1:48 PM: Backend event: Put - Completed: duplicati-bd61c3dd552de45b79ebbc8fb5039c013.dblock.zip.aes (50.72 MB)
Mar 19, 2020 1:48 PM: Backend event: Put - Started: duplicati-bd61c3dd552de45b79ebbc8fb5039c013.dblock.zip.aes (50.72 MB)
Mar 19, 2020 1:47 PM: Renaming "duplicati-b0e5da57e5769470098f1e63669b6b51e.dblock.zip.aes" to "duplicati-bd61c3dd552de45b79ebbc8fb5039c013.dblock.zip.aes"
Mar 19, 2020 1:47 PM: Backend event: Put - Rename: duplicati-bd61c3dd552de45b79ebbc8fb5039c013.dblock.zip.aes (50.72 MB)
Mar 19, 2020 1:47 PM: Backend event: Put - Rename: duplicati-b0e5da57e5769470098f1e63669b6b51e.dblock.zip.aes (50.72 MB)
Mar 19, 2020 1:47 PM: Backend event: Put - Retrying: duplicati-b0e5da57e5769470098f1e63669b6b51e.dblock.zip.aes (50.72 MB)
Mar 19, 2020 1:47 PM: Operation Put with file duplicati-b0e5da57e5769470098f1e63669b6b51e.dblock.zip.aes attempt 1 of 5 failed with message: One or more errors occurred.
Mar 19, 2020 1:47 PM: Backend event: Put - Started: duplicati-b0e5da57e5769470098f1e63669b6b51e.dblock.zip.aes (50.72 MB)

Meant to add this to my previous post but butchered the formatting pretty good.

The message that indicated “One more more errors occurred” contained this:

"ClassName":"System.AggregateException","Message":"One or more errors occurred.","Data":null,"InnerException":{"ClassName":"System.Net.WebException","Message":"The request was aborted: Could not create SSL/TLS secure channel.","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" at Duplicati.Library.Utility.AsyncHttpRequest.AsyncWrapper.GetResponseOrStream()\r\n at Duplicati.Library.Utility.AsyncHttpRequest.GetRequestStream(Int64 contentlength)\r\n at Duplicati.Library.Backend.WEBDAV.<PutAsync>d__36.MoveNext()","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nGetResponseOrStream\nDuplicati.Library.Utility, Version=2.0.5.1, Culture=neutral, PublicKeyToken=null\nDuplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper\nSystem.Object GetResponseOrStream()","HResult":-2146233079,"Source":"Duplicati.Library.Utility","WatsonBuckets":null},"HelpURL":null,"StackTraceString":" at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)\r\n at Duplicati.Library.Main.BackendManager.DoPut(FileEntryItem item)\r\n at Duplicati.Library.Main.BackendManager.ThreadRun()","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nWait\nmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.Threading.Tasks.Task\nBoolean Wait(Int32, System.Threading.CancellationToken)","HResult":-2146233088,"Source":"mscorlib","WatsonBuckets":null,"InnerExceptions":[{"ClassName":"System.Net.WebException","Message":"The request was aborted: Could not create SSL/TLS secure channel.","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" at Duplicati.Library.Utility.AsyncHttpRequest.AsyncWrapper.GetResponseOrStream()\r\n at Duplicati.Library.Utility.AsyncHttpRequest.GetRequestStream(Int64 contentlength)\r\n at Duplicati.Library.Backend.WEBDAV.<PutAsync>d__36.MoveNext()","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nGetResponseOrStream\nDuplicati.Library.Utility, Version=2.0.5.1, Culture=neutral, PublicKeyToken=null\nDuplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper\nSystem.Object GetResponseOrStream()","HResult":-2146233079,"Source":"Duplicati.Library.Utility","WatsonBuckets":null}]}

The first four retry attempts failed with this message:

{"ClassName":"System.ArgumentNullException","Message":"Path cannot be null.","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" 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)\r\n at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)\r\n at Duplicati.Library.Encryption.EncryptionBase.Encrypt(String inputfile, String outputfile)\r\n at Duplicati.Library.Main.BackendManager.FileEntryItem.Encrypt(IEncryption encryption, IBackendWriter stat)\r\n at Duplicati.Library.Main.BackendManager.DoPut(FileEntryItem item)\r\n at Duplicati.Library.Main.BackendManager.ThreadRun()","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nInit\nmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.IO.FileStream\nVoid Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean)","HResult":-2147467261,"Source":"mscorlib","WatsonBuckets":null,"ParamName":"path"}

The last retry attempt failed with this message:

{"ClassName":"System.ArgumentNullException","Message":"Path cannot be null.","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" at Duplicati.Library.Main.BackendManager.WaitForEmpty(LocalDatabase db, IDbTransaction transation)\r\n at Duplicati.Library.Main.Operation.CompactHandler.DoDelete(LocalDeleteDatabase db, BackendManager backend, IEnumerable1 deleteableVolumes, IDbTransaction& transaction)\r\n at Duplicati.Library.Main.Operation.CompactHandler.DoCompact(LocalDeleteDatabase db, Boolean hasVerifiedBackend, IDbTransaction& transaction, BackendManager sharedBackend)\r\n at Duplicati.Library.Main.Operation.CompactHandler.Run()\r\n at Duplicati.Library.Main.Controller.RunAction[T](T result, String& paths, IFilter& filter, Action1 method)\r\n at Duplicati.Library.Main.Controller.Compact()\r\n at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nWaitForEmpty\nDuplicati.Library.Main, Version=2.0.5.1, Culture=neutral, PublicKeyToken=null\nDuplicati.Library.Main.BackendManager\nVoid WaitForEmpty(Duplicati.Library.Main.Database.LocalDatabase, System.Data.IDbTransaction)","HResult":-2147467261,"Source":"Duplicati.Library.Main","WatsonBuckets":null,"ParamName":"path"

There’s a chance this is related to the following issue

which is fixed here:

Thanks for all the help / input.

Currently, after a few error/repair/retry cycles, the intermittent error has stopped.

No changes were made to the setup, and the duplicati version is unchanged (Duplicati - 2.0.5.1_beta_2020-01-18). So, I’m perplexed as to the real source of the problem and how it was “solved”.

:man_shrugging:

I observed a similar outcome. When the job failed, if I did a repair and then restart it would get a little further than it did last time and eventually complete the job.

I read the links @warwickmm provided indicating that the problem has been fixed… I look forward to the next beta release!

I think the issue mainly occurs when an upload and all of its reattempts fail. If the upload was successful, then you probably won’t encounter this problem.

I have the same problem described by “rivy” since upgrading to Duplicati - 2.0.5.1_beta_2020-01-18. Intermittent failure to Backblaze B2 backend. Mac OS X High Sierra, Mono 6.8.0.96

Failed: Value cannot be null.
Parameter name: path
Details: System.ArgumentNullException: Value cannot be null.
Parameter name: path

After running a manual backup I also get this follow-up error previously described by “rivy”:

Failed: Found 1 remote files that are not recorded in local storage, please run repair
Details: Duplicati.Library.Interface.UserInformationException: Found 1 remote files that are not recorded in local storage, please run repair

After running a quick repair and retrying Duplicati manually it usually starts the backup fine.

I am now getting those errors on all of my computers. Repair also no longer seems to fix this issue. Any help?

In a bad sort of way, reliable errors are a good test time.

Viewing the log files of a backup job Complete log will show prior history of "RetryAttempts"

Viewing the Duplicati Server Logs at About → Show log → Live → Retry will show any retries.

Screen 5 (Options) Advanced options –number-of-retries can be increased above its default 5.

The above will help to determine whether the retry exhaustion issue seems to apply in this case.

Alternatively, Release: 2.0.5.104 (canary) 2020-03-25 seems to be holding up well. I’m using it…
The database versions appear compatible with 2.0.5.1, so going back “should” go OK, if desired.
Canary releases are always a bit of an unknown though. Don’t use it on any high-value backups.
This would be just a chance to see if the fix for a retry exhaustion issue fixes this particular issue.

Viewing the log files of a backup job that failed with “Value cannot be null” error:
There is no log entry at all in Duplicati. Really weird, as if this backup was never happening.

I watched one backup closely and it nearly completed to its end, i.e. upload appears to have completed at this time. The last message in GUI was “Deleting Unwanted Files” and then it failed.

There is however a log entry under Duplicati Server Logs:

Apr 8, 2020 2:52 PM: Failed while executing “Backup” with id: 4
System.ArgumentNullException: Value cannot be null.
Parameter name: path
at Duplicati.Library.Main.BackendManager.WaitForEmpty (Duplicati.Library.Main.Database.LocalDatabase db, System.Data.IDbTransaction transation) [0x00067] in <8f1de655bd1240739a78684d845cecc8>:0
at Duplicati.Library.Main.Operation.CompactHandler.DoDelete (Duplicati.Library.Main.Database.LocalDeleteDatabase db, Duplicati.Library.Main.BackendManager backend, System.Collections.Generic.IEnumerable1[T] deleteableVolumes, System.Data.IDbTransaction& transaction) [0x00040] in <8f1de655bd1240739a78684d845cecc8>:0 at Duplicati.Library.Main.Operation.CompactHandler.DoCompact (Duplicati.Library.Main.Database.LocalDeleteDatabase db, System.Boolean hasVerifiedBackend, System.Data.IDbTransaction& transaction, Duplicati.Library.Main.BackendManager sharedBackend) [0x004a2] in <8f1de655bd1240739a78684d845cecc8>:0 at Duplicati.Library.Main.Operation.DeleteHandler.DoRun (Duplicati.Library.Main.Database.LocalDeleteDatabase db, System.Data.IDbTransaction& transaction, System.Boolean hasVerifiedBacked, System.Boolean forceCompact, Duplicati.Library.Main.BackendManager sharedManager) [0x00397] in <8f1de655bd1240739a78684d845cecc8>:0 at Duplicati.Library.Main.Operation.BackupHandler.CompactIfRequired (Duplicati.Library.Main.BackendManager backend, System.Int64 lastVolumeSize) [0x000a5] in <8f1de655bd1240739a78684d845cecc8>:0 at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x01033] in <8f1de655bd1240739a78684d845cecc8>:0 at CoCoL.ChannelExtensions.WaitForTaskOrThrow (System.Threading.Tasks.Task task) [0x00050] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 at Duplicati.Library.Main.Operation.BackupHandler.Run (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00009] in <8f1de655bd1240739a78684d845cecc8>:0 at Duplicati.Library.Main.Controller+<>c__DisplayClass14_0.<Backup>b__0 (Duplicati.Library.Main.BackupResults result) [0x0004b] in <8f1de655bd1240739a78684d845cecc8>:0 at Duplicati.Library.Main.Controller.RunAction[T] (T result, System.String[]& paths, Duplicati.Library.Utility.IFilter& filter, System.Action1[T] method) [0x0026f] in <8f1de655bd1240739a78684d845cecc8>:0
at Duplicati.Library.Main.Controller.Backup (System.String inputsources, Duplicati.Library.Utility.IFilter filter) [0x00074] in <8f1de655bd1240739a78684d845cecc8>:0
at Duplicati.Server.Runner.Run (Duplicati.Server.Runner+IRunnerData data, System.Boolean fromQueue) [0x00349] in :0

Were you watching the live log during the backup? If so, there should be something being seen.
If not, I don’t know why, but you can try Advanced option –log-file and –log-file-log-level=Retry

I assume the other log from yesterday is About → Show log → Stored? Regardless, it may help somewhat (we get a view of the ending, and see that it’s in a Compact which was the suspicion).
Knowing whether or not retries happened is important, and only the live log or --log-file get those.

To clarify, a failed backup with the discussed error does not show up at all under Home --> BackupName --> Show Log.

I do get an error message email and I can see the error under About --> Show Log -->Stored.

The backup failed again last night. Today I ran database repair and then watched the Live Log. Of course this time it completed fine.

It looks like this might have been solved by

Revert incorrect disposal of IndexVolumeWriter by warwickmm · Pull Request #4137 · duplicati/duplicati · GitHub

(as posted by @warwickmm). And he has also recently posted a PR with a likely solution to the long repair time.

Add indices to Block table to improve query performance by warwickmm · Pull Request #4171 · duplicati/duplicati · GitHub

I’m not sure what version will have both of these changes, but I hope to see it soon.

Thanks @warwickmm!