I'm stuck in a loop,repair failed,purge failed,need help

I was using Alist to mount Terabox cloud storage via WebDAV for backups.For some reason, my backup process has stopped with an error. Here is the log.

System.AggregateException: One or more errors occurred. (The remote server returned an error: (405) Method Not Allowed. (The remote server returned an error: (405) Method Not Allowed.) (One or more errors occurred. (The remote server returned an error: (405) Method Not Allowed.))) ---> System.AggregateException: The remote server returned an error: (405) Method Not Allowed. (The remote server returned an error: (405) Method Not Allowed.) (One or more errors occurred. (The remote server returned an error: (405) Method Not Allowed.)) ---> System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x00146] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Backend.WEBDAV.PutAsync (System.String remotename, System.IO.Stream stream, System.Threading.CancellationToken cancelToken) [0x001b8] in <1aa1326b13664b9f92f75d7048721a2d>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Interface.IBackend backend, System.Threading.CancellationToken cancelToken) [0x00426] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader+<>c__DisplayClass20_0.<UploadFileAsync>b__0 () [0x0010a] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00198] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x003c1] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x000da] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync (Duplicati.Library.Main.Operation.Backup.VolumeUploadRequest upload, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00098] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x00780] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x007d7] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at CoCoL.AutomationExtensions.RunTask[T] (T channels, System.Func`2[T,TResult] method, System.Boolean catchRetiredExceptions) [0x000d5] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.FlushBackend (Duplicati.Library.Main.BackupResults result, CoCoL.IWriteChannel`1[T] uploadtarget, System.Threading.Tasks.Task uploader) [0x000f2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00cb2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
   --- End of inner exception stack trace ---
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x01048] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
   --- End of inner exception stack trace ---
  at CoCoL.ChannelExtensions.WaitForTaskOrThrow (System.Threading.Tasks.Task task) [0x0005d] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.Run (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00009] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Controller+<>c__DisplayClass14_0.<Backup>b__0 (Duplicati.Library.Main.BackupResults result) [0x0004b] in <9cab5b8f1b4f49ec980acae8e278968b>: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 <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Controller.Backup (System.String[] inputsources, Duplicati.Library.Utility.IFilter filter) [0x00074] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Server.Runner.Run (Duplicati.Server.Runner+IRunnerData data, System.Boolean fromQueue) [0x00349] in <30a34d71126b48248d040dda634ddad9>:0 
---> (Inner Exception #0) System.AggregateException: The remote server returned an error: (405) Method Not Allowed. (The remote server returned an error: (405) Method Not Allowed.) (One or more errors occurred. (The remote server returned an error: (405) Method Not Allowed.)) ---> System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x00146] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Backend.WEBDAV.PutAsync (System.String remotename, System.IO.Stream stream, System.Threading.CancellationToken cancelToken) [0x001b8] in <1aa1326b13664b9f92f75d7048721a2d>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Interface.IBackend backend, System.Threading.CancellationToken cancelToken) [0x00426] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader+<>c__DisplayClass20_0.<UploadFileAsync>b__0 () [0x0010a] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00198] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x003c1] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x000da] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync (Duplicati.Library.Main.Operation.Backup.VolumeUploadRequest upload, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00098] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x00780] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x007d7] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at CoCoL.AutomationExtensions.RunTask[T] (T channels, System.Func`2[T,TResult] method, System.Boolean catchRetiredExceptions) [0x000d5] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.FlushBackend (Duplicati.Library.Main.BackupResults result, CoCoL.IWriteChannel`1[T] uploadtarget, System.Threading.Tasks.Task uploader) [0x000f2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00cb2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
   --- End of inner exception stack trace ---
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x01048] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
---> (Inner Exception #0) System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x00146] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Backend.WEBDAV.PutAsync (System.String remotename, System.IO.Stream stream, System.Threading.CancellationToken cancelToken) [0x001b8] in <1aa1326b13664b9f92f75d7048721a2d>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Interface.IBackend backend, System.Threading.CancellationToken cancelToken) [0x00426] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader+<>c__DisplayClass20_0.<UploadFileAsync>b__0 () [0x0010a] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00198] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x003c1] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x000da] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync (Duplicati.Library.Main.Operation.Backup.VolumeUploadRequest upload, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00098] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x00780] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x007d7] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at CoCoL.AutomationExtensions.RunTask[T] (T channels, System.Func`2[T,TResult] method, System.Boolean catchRetiredExceptions) [0x000d5] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.FlushBackend (Duplicati.Library.Main.BackupResults result, CoCoL.IWriteChannel`1[T] uploadtarget, System.Threading.Tasks.Task uploader) [0x000f2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00cb2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 <---

---> (Inner Exception #1) System.AggregateException: One or more errors occurred. (The remote server returned an error: (405) Method Not Allowed.) ---> System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x00146] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Backend.WEBDAV.PutAsync (System.String remotename, System.IO.Stream stream, System.Threading.CancellationToken cancelToken) [0x001b8] in <1aa1326b13664b9f92f75d7048721a2d>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Interface.IBackend backend, System.Threading.CancellationToken cancelToken) [0x00426] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader+<>c__DisplayClass20_0.<UploadFileAsync>b__0 () [0x0010a] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00198] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x003c1] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x000da] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync (Duplicati.Library.Main.Operation.Backup.VolumeUploadRequest upload, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00098] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x00780] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x007d7] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at CoCoL.AutomationExtensions.RunTask[T] (T channels, System.Func`2[T,TResult] method, System.Boolean catchRetiredExceptions) [0x000d5] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.FlushBackend (Duplicati.Library.Main.BackupResults result, CoCoL.IWriteChannel`1[T] uploadtarget, System.Threading.Tasks.Task uploader) [0x000f2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00cb2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x00146] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <33b19a7ad5234d94abf4fd9b47566616>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <ae4a5c68f78041539efc9420d056bd22>:0 
  at Duplicati.Library.Backend.WEBDAV.PutAsync (System.String remotename, System.IO.Stream stream, System.Threading.CancellationToken cancelToken) [0x001b8] in <1aa1326b13664b9f92f75d7048721a2d>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Interface.IBackend backend, System.Threading.CancellationToken cancelToken) [0x00426] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader+<>c__DisplayClass20_0.<UploadFileAsync>b__0 () [0x0010a] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00198] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry (System.Func`1[TResult] method, Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x003c1] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync (Duplicati.Library.Main.Operation.Common.BackendHandler+FileEntryItem item, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x000da] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync (Duplicati.Library.Main.Operation.Backup.VolumeUploadRequest upload, Duplicati.Library.Main.Operation.Backup.BackendUploader+Worker worker, System.Threading.CancellationToken cancelToken) [0x00098] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x00780] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__13_0 (<>f__AnonymousType12`1[<Input>j__TPar] self) [0x007d7] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at CoCoL.AutomationExtensions.RunTask[T] (T channels, System.Func`2[T,TResult] method, System.Boolean catchRetiredExceptions) [0x000d5] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.FlushBackend (Duplicati.Library.Main.BackupResults result, CoCoL.IWriteChannel`1[T] uploadtarget, System.Threading.Tasks.Task uploader) [0x000f2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 
  at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String[] sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00cb2] in <9cab5b8f1b4f49ec980acae8e278968b>:0 <---
<---
<---

When I try to restart the backup process, it gives me the following error:

Found 5 files that are missing from the remote storage, please run repair

Then I run the repair.and it told me:

The backup storage destination is missing data files. You can either enable `--rebuild-missing-dblock-files` or run the purge command to remove these files. The following files are missing: duplicati-bf08f2c1b0b1f4cac9d7b6d7d0556ebc0.dblock.zip.aes, duplicati-b991e13d66fe441d88554cefcd14e32be.dblock.zip.aes, duplicati-b0cfe7d9eab4d4e63bc5f7e2c2d2bc345.dblock.zip.aes, duplicati-bb57d889722b640e49fd7017b4d7cea6b.dblock.zip.aes, duplicati-bcdeb0d9ce9c447cca8432d30c2d23cfd.dblock.zip.aes

so i run the repair with --rebuild-missing-dblock-files.Here is the log.

  Listing remote folder ...
Failed to perform cleanup for missing file: duplicati-bf08f2c1b0b1f4cac9d7b6d7d0556ebc0.dblock.zip.aes, message: Repair not possible, missing 25 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage. => Repair not possible, missing 25 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage.
Failed to perform cleanup for missing file: duplicati-b991e13d66fe441d88554cefcd14e32be.dblock.zip.aes, message: Repair not possible, missing 25 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage. => Repair not possible, missing 25 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage.
Failed to perform cleanup for missing file: duplicati-b0cfe7d9eab4d4e63bc5f7e2c2d2bc345.dblock.zip.aes, message: Repair not possible, missing 25 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage. => Repair not possible, missing 25 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage.
Failed to perform cleanup for missing file: duplicati-bb57d889722b640e49fd7017b4d7cea6b.dblock.zip.aes, message: Repair not possible, missing 26 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage. => Repair not possible, missing 26 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage.
Failed to perform cleanup for missing file: duplicati-bcdeb0d9ce9c447cca8432d30c2d23cfd.dblock.zip.aes, message: Repair not possible, missing 432 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage. => Repair not possible, missing 432 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage.
Return code: 0

Then I follow its instructions and run the “list-broken-files” and “purge-broken-files” commands.Here is the log.

  Listing remote folder ...
Return code: 0

So I’m at a loss here. This has been going on for several days now, and I’ve even tried rebuilding the database with no luck. Can anyone help me out? I’d really appreciate it.

Welcome to the forum @tietietie

This setup is not looking like an easy one to deal with. Have you looked at the alist issues?
Several of this sort (referring to the “(405) Method Not Allowed”) seem to be reported there.

Next stop is TeraBox which does not seem to have an official API, so may challenge alist.
Certainly I could suggest tests to see what works (or won’t), but services sometimes don’t…

The basic test is the Test connection button, but that’s just to see if list gives an answer.
Duplicati.CommandLine.BackendTool.exe can test using URL from Export As Command-line
which you could also edit to an empty folder for Duplicati.CommandLine.BackendTester.exe:

Before you start using a particular backend to use as a backup target, you can use the Backend Tester to get an indication of the integrity of that backend.

You must have something working, or you wouldn’t have been able to rebuild your database.
Inability to upload is serious though, so please see if you can test out what works, or doesn’t.

Thank you. Could you please tell me specifically how to use this Duplicati.CommandLine.BackendTool.exe command? I couldn’t find this command in the web GUI.

Command line tools run from command line such as Windows Command Prompt or Linux shell.

yeah,but…/bin/sh: 11: Duplicati.CommandLine.BackendTool.exe: not found

Duplicati programs are in the Duplicati install folder, often /usr/lib/duplicati. On Linux, sometimes mono programs run by just saying them (or saying them with a dot-slash in front, or a full path), sometimes you have to say mono before their file name. Depends on how your Linux is set up.

Sorry, I still haven’t found it. I installed Duplicati in k3s within TrueNAS Scale.

So it’s a Docker, and probably not a Duplicati made one either. Probably from LinuxServer…
You can docker exec into it and look around. /usr/bin/duplicati might identify the install path.

EDIT 1:

For a non-Docker install, it traces like:

$ cat /usr/bin/duplicati
#!/bin/bash
INSTALLDIR=/usr/lib/duplicati
export LD_LIBRARY_PATH="${INSTALLDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export MONO_PATH=$MONO_PATH:${INSTALLDIR}

EXE_FILE=${INSTALLDIR}/Duplicati.GUI.TrayIcon.exe
APP_NAME=Duplicati

exec -a "$APP_NAME" mono "$EXE_FILE" "$@"

If that way doesn’t work, you can perhaps find it with the ps command. Duplicati is somewhere.

EDIT 2:

For a blind search, you can try under /usr for likely locations for them to have installed Duplicati.

Thank you very much. I’m going to give it a try.

root@duplicati-7957d59d6d-8v52n:/opt/duplicati# -bash: ./Duplicati.CommandLine.BackendTool.exe: cannot execute binary file: Exec format error

God,this is so hard,I’m about to give up…

By the way,it is from duplicati:
Sources for duplicati

suggests Duplicati’s image puts Duplicati in /opt/duplicati. You probably can read Dockerfile better than I can, because I don’t use Docker. I will say I find it a hard environment to support. Hard to get in.

EDIT:

docker exec duplicati mono /opt/duplicati/Duplicati.CommandLine.exe

supports my thinking that that’s where the Duplicati installation is, and is an example of a use.

Problem is that even if we can confirm that alist plus TeraBox is giving trouble with Duplicati, workaround gets harder, e.g. testing with an rclone backend is harder to set up for a container.

You can use the Linux “which” command to find where installed programs live:

rlw1138@russ-mint:~$ which duplicati
/usr/bin/duplicati

rlw1138@russ-mint:~$ cd /usr/bin

rlw1138@russ-mint:/usr/bin$ ll dupli*
-rwxr-xr-x 1 root root 273 Jun 17 2021 duplicati*
-rwxr-xr-x 1 root root 284 Jun 17 2021 duplicati-cli*
-rwxr-xr-x 1 root root 273 Jun 17 2021 duplicati-server*

The “command line” program you’re searching for should be called “duplicati-cli” (for Command Line Interface).

Since /usr/bin should be in your Path, you can just type duplicati-cli no matter what directory is current.

EDIT: type “duplicati-cli help help” at any prompt and you should see about a dozen lines of not too helpful text

Welcome to the forum @rlw1138 and thanks for the suggestion. I don’t think those three commands are hard to find. Dockerfile below looks like it expects them to be in /usr/bin.

and then the question is where does the /usr/bin/duplicati-server bash script expect actual executables to do the real work? See the example above for the design of one such script.

ps -ef | grep -i duplicati from docker exec would also show where executable is.

@rlw1138
In any case, thank you. I found a solution—I split my folder into multiple tasks for uploading. As long as each task doesn’t run for a long time, errors are less likely to occur. Even if they do, it’s much easier to restart since the files are smaller after splitting.

2 Likes

I’m glad you were able to find how to get it happy. Some other tunings that might help out are:

number-of-retries
retry-delay
(newer variant, and not in manual)

  --retry-with-exponential-backoff (Boolean): Whether to enable exponential
    backoff.
    After a failed transmission, Duplicati will wait a short period before
    attempting again. This period is controlled by the retry-delay option.
    When this option is enabled, that period is doubled after each
    consecutive failure.
    * default value: false

throttle-upload
asynchronous-concurrent-upload-limit

See above for other config ideas, but this one just caught my eye.
Files should never be above 50 MB by default. Did you raise that?

Choosing sizes in Duplicati

No, I tried increasing --dblock-size to 100M and --block-size to 2M, but after finding that neither worked, I reverted to the default settings. My files range from a few KB to several tens of GB.I thought --dblock-size just averages the --block-size grouping. Why you said files should never be above 50 MB by default.? Also, how do you suggest setting --dblock-size and --block-size for my irregular file sizes? My upload speed is only 50Mb.

I believe this config try wasn’t mentioned. Changing the blocksize needs a fresh backup, so it wouldn’t be something you can do anytime. You can change Remote volume size any time, but unwanted surprises can occur which can be worked around a bit. Easy to change at fresh start.

Where did you get the thought? I understand neither “averages” nor “grouping” concepts in that.
blocksize is the maximum size of a block which may be smaller, e.g. if only block or last block. Remote volume size is container size for a bunch of blocks. They get put in until it gets filled up.

The default Remote volume size is 50 MB. Read the “Choosing sizes” document or note image:

and the “See this page” points to the same page I’m linking but at section Remote Volume Size which can also be set via dblock-size, although it’s less typical, and definitely not as highlighted.

So how large are your “much smaller” files? It’s certainly possible for small changes to get small dblock upload, but if you ever get beyond 50 MB, then that seems very unlikely with your config.

Irregular is largely irrelevant, as files get broken into blocks. Maybe you can read the manual

The backup process explained
How the backup process works (a more technical explanation)

Total backup size matters. If over 100 GB, you should scale blocksize to keep performance. Future number may change, as the default 100 KB blocksize is recognized as a bit too small. Backups below 100 GB can stay at default unless they have some special reason to not do it. Remote destination does not know the blocksize, just Remote volume size a.k.a. dblock-size.

If that’s 50 megabits per second, it’s not unusual, however you also have a fragile destination. Keeping it working (are you sure you really want to be using it?) may need some adjustments. Remote volume size is another that you can add to the list of tunings to keep it running better.

haha, I read the Duplicati manual the first time I used it. I’m not a native English speaker, so I might have misunderstood it.

The config after splitting my folders is exactly as you suggested.Anyway, I’m so happy I can back up smoothly now. Thank you very much for your careful guidance and your contributions to this project.

1 Like