Release: 2.1.0.105 (Canary) 2025-01-07

2.1.0.105_canary_2025-01-07

This release is a canary release intended to be used for testing.

Note that this build has a redesigned restore flow
Should issues arise, the previous restore engine can be enabled with --restore-legacy=true.

Detailed list of changes:

  • Fix issue with FTP not connecting correctly
  • Improved large restore speed (+5TiB), thanks @snamds
  • Corrected reported options for Azure, Aliyun, OpenStack and Storj
  • OpenStack detects protocol version from URL
  • Sia redundancy option is now a decimal (culture invariant parsing)
  • Added help links to connection dialog and login pages
  • Fixed issue with new restore not auto-creating missing folder structure
  • Fixed issue with new restore without overwrite
  • Fixed a place not honoring disabled quota
  • Added CIFS / SMB backend
  • Updated MacOS DMG image
3 Likes

Works, is fast and good. Letā€™s see if I can find anything to complain about. :wink:

Itā€™s not a flaw, but if I can wish, Windows CLI version(s) would be nice too. Yet I do understand that userbase of it could be quite marginal. And the overhead of having GUI installed (when not being used anyway) is quite marginal.

Iā€™m testing the CIFS/SMB backend on one of my RPi-4 machines, ARM64, and itā€™s not going well. The set up of the new destination to where my old CIFS mount point was, works fine and tests ok, but backups fail with numerous errors. This is a sample from the job and server logs:

    "2025-01-08 11:58:26 +01 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Backup has started",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  (89 bytes)",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-KeepIncompleteFile]: keeping protected incomplete remote file listed as Uploading: duplicati-20250107T234035Z.dlist.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-SchedulingMissingFileForDelete]: scheduling missing file for deletion, currently listed as Uploading: duplicati-b2935a293211942e2be718e01d8176939.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-SchedulingMissingFileForDelete]: scheduling missing file for deletion, currently listed as Uploading: duplicati-bc0e825504b964dedaee1792b506b51cc.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-SchedulingMissingFileForDelete]: scheduling missing file for deletion, currently listed as Uploading: duplicati-bbef353360f0d4b61b2e6c72f3477a95d.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b236cb164e95e497792fc94271be4f0fe.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-bf2b17048a5424f6c80112d46b0f4bd17.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b6ea0a3fa8c364ddb88a47b38f5117dd6.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b32fc4ecca55345a0bcc547fb79925fba.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-ba3606e013fab43f59981ac5907d95aa6.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b290a8b6a5d5a45fd81127d71afa96d3f.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-bb2c4f3e5004841ea847b0d99e8cf086a.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b2d918ac89e6e40d9b6246549457c01b0.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-bb7de7c87238542e58e1145a0fb50c1ec.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b54fea9bb0bf1434eb8e7e778bd110f03.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-SchedulingMissingFileForDelete]: scheduling missing file for deletion, currently listed as Uploading: duplicati-b0e1d89c63d194f8c9400668c7f509965.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-bb6ae50a255994de89d5d44655fa3bd6e.dblock.zip.aes",
    "2025-01-08 11:58:27 +01 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b2dffa679758740ab93f4f07ef9c620c6.dblock.zip.aes"
  ],
  "Warnings": [],
  "Errors": [
    "2025-01-08 12:02:05 +01 - [Error-Duplicati.Library.Main.Operation.BackupHandler-FatalError]: Fatal error\nAggregateException: One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)",
    "2025-01-08 12:02:05 +01 - [Error-Duplicati.Library.Main.Controller-FailedOperation]: The operation Backup has failed with error: One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)) (One or more errors occurred. (One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)))\nAggregateException: One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)) (One or more errors occurred. (One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)))"


8 Jan 2025 12:02: The operation Backup has failed with error: One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)) (One or more errors occurred. (One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)))
8 Jan 2025 12:02: Fatal error
System.AggregateException: One or more errors occurred. (Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID) (Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID)
 ---> Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-b341a7d92fcca475d9c02c14a13d9fe53.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync(FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync(VolumeUploadRequest upload, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__18_0(<>f__AnonymousType2`1 self)
   --- End of inner exception stack trace ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__18_0(<>f__AnonymousType2`1 self)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<Run>b__18_0(<>f__AnonymousType2`1 self)
   at CoCoL.AutomationExtensions.RunTask[T](T channels, Func`2 method, Boolean catchRetiredExceptions)
   at Duplicati.Library.Main.Operation.BackupHandler.FlushBackend(BackupResults result, IWriteChannel`1 uploadtarget, Task uploader)
   at Duplicati.Library.Main.Operation.BackupHandler.RunAsync(String[] sources, IFilter filter)
 ---> (Inner Exception #1) Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-b31782b20d3c34b5a9960f79cc3048d2f.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync(FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync(VolumeUploadRequest upload, Worker worker, CancellationToken cancelToken)<---

 ---> (Inner Exception #2) Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync(FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync(VolumeUploadRequest upload, Worker worker, CancellationToken cancelToken)<---
8 Jan 2025 12:01: Backend event: Put - Retrying: duplicati-b227932e7f436489091ca0a5a045d8089.dblock.zip.aes (93.845 MB)
8 Jan 2025 12:01: Operation Put with file duplicati-b227932e7f436489091ca0a5a045d8089.dblock.zip.aes attempt 1 of 6 failed with message: Failed to create file for writing duplicati-b227932e7f436489091ca0a5a045d8089.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-b227932e7f436489091ca0a5a045d8089.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
8 Jan 2025 12:01: Backend event: Put - Started: duplicati-b227932e7f436489091ca0a5a045d8089.dblock.zip.aes (93.845 MB)
8 Jan 2025 12:01: Backend event: Put - Failed: duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes (99.888 MB)
8 Jan 2025 12:01: Operation Put with file duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes attempt 6 of 6 failed with message: Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadFileAsync(FileEntryItem item, Worker worker, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.UploadBlockAndIndexAsync(VolumeUploadRequest upload, Worker worker, CancellationToken cancelToken)
8 Jan 2025 12:01: Backend event: Put - Started: duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes (99.888 MB)
8 Jan 2025 12:01: Renaming "duplicati-b112e587501484b91a4c8678f7c223538.dblock.zip.aes" to "duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes"
8 Jan 2025 12:01: Backend event: Put - Rename: duplicati-bab01e5180c9041fdbf6664a0ed804b13.dblock.zip.aes (99.888 MB)
8 Jan 2025 12:01: Backend event: Put - Rename: duplicati-b112e587501484b91a4c8678f7c223538.dblock.zip.aes (99.888 MB)
8 Jan 2025 12:01: Backend event: Put - Retrying: duplicati-b112e587501484b91a4c8678f7c223538.dblock.zip.aes (99.888 MB)
8 Jan 2025 12:01: Operation Put with file duplicati-b112e587501484b91a4c8678f7c223538.dblock.zip.aes attempt 5 of 6 failed with message: Failed to create file for writing duplicati-b112e587501484b91a4c8678f7c223538.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-b112e587501484b91a4c8678f7c223538.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)

I checked the permissions on the file share and file/folder content (account has modify rights only) and itā€™s still the same.

I just tried deleting the content of the destination then copying back a copy I made before the first attempt. This should have rewritten all the permissions but it hasnā€™t made any difference.

8 Jan 2025 12:56: Operation Put with file duplicati-b6b7737555eb541798961c87070c7b562.dblock.zip.aes attempt 1 of 6 failed with message: Failed to create file for writing duplicati-b6b7737555eb541798961c87070c7b562.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
Duplicati.Library.Interface.UserInformationException: Failed to create file for writing duplicati-b6b7737555eb541798961c87070c7b562.dblock.zip.aes with status STATUS_OBJECT_NAME_INVALID
   at Duplicati.Library.Backend.CIFS.SMBShareConnection.PutAsync(String filename, Stream sourceStream, CancellationToken cancellationToken)
   at Duplicati.Library.Backend.CIFSBackend.PutAsync(String remotename, Stream input, CancellationToken cancellationToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoPut(FileEntryItem item, IBackend backend, CancellationToken cancelToken)
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.<>c__DisplayClass25_0.<<UploadFileAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Library.Main.Operation.Backup.BackendUploader.DoWithRetry(Func`1 method, FileEntryItem item, Worker worker, CancellationToken cancelToken)

Oh, and the destination is a Windows 2025 server.

ā€¦osx-x64-cli.pkg and ā€¦osx-x64-agent.pkg? What is the function of both?

is where I asked about Windows CLI, so got a comparison of overhead on different platforms.
Regarding using native graphics, some days I wish they could do more than just the TrayIcon.
Error messages and notifications might be nice, but if thereā€™s a flood, theyā€™d get annoying fast.

Including fix for below? I never had time to test, but Iā€™m hoping all folder structures now restore.

I was considering it, but essentially it is ~10KiB (2 extra files) on Windows, so I figured it was too much, given the packages are +70MiB.

For Linux it is different because we need package dependencies, and a server install should not pull in a desktop environment if not needed.

For MacOS it is different because the GUI is packaged as an app bundle, but this makes it hard to use as CLI.

Anything special you would like in a Windows CLI version? I guess we could update the MSI to deselect the TrayIcon files with an option.

I think this is the important part. There is another issue reported with CIFS where it works on Synology CIFS, but not FritzBox.

Is the Path on the destination configuration set to a directory or blank?

I was able to reproduce, it seems to be related to the forward slash / added to the path by Path.Combine which happens on source operating system (linux) and Windows share expects backslack \.

This will be a quick fix and as soon as we run the tests again with Windows and Linux on inverted roles (as source and as destination) I will update you.

2 Likes

Set to a subdirectory of the share, all the jobs for this machine use the same share but a different subdirectory e.g \\server.mydomain.com\machine-name\duplicati\job-name

Thanks for the information. Indeed it seemed to revolve only around the path normalization. I am already working on the tests on different OS combinations.

2 Likes

TrayIcon disappears but its server does not stop on right-click Quit. Discussion before, but this time there is either a new or newly noticed symptom in the server log which is giving errors like

2025-01-11 07:39:33 -05 - [Information-Duplicati.Library.Main.Controller-CompletedOperation]: The operation Backup has completed
2025-01-11 12:34:01 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:34:01 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:41:41 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:41:41 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:41:41 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:41:41 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:49:29 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:49:29 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:57:00 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:57:00 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:57:00 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 12:57:00 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:04:48 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:04:48 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:12:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:12:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:12:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:12:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:20:04 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:20:04 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:27:44 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:27:44 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:27:44 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:27:44 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:35:10 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:35:10 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:35:10 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:42:53 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:42:53 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:42:53 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:50:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:50:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:50:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:50:14 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:58:01 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-01-11 13:58:01 -05 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "UI Action" is retired)
 ---> CoCoL.RetiredException: The channel "UI Action" is retired
   at CoCoL.Channel`1.WriteAsync(T value, ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---

Posting a large sample in order to better see the timing (if it matters). These donā€™t seem to align with any TCP exchanges or console writes. The console did get messages, but I canā€™t see when:

C:\Duplicati\duplicati-2.1.0.105_canary_2025-01-07-win-x64-gui\RUN>pause
Press any key to continue . . . Server has started and is listening on port 8201
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.
[WebSocket] Client closed connection prematurely.

I thought maybe having it in Pause (to Quit the right icon) mattered, but it doesnā€™t in 2.1.0.106 (which is the reason I did Quit on 2.1.0.105). Moving to 106, and will leave 105 up a bit more.

This means the inner processor for UI messages has closed down, so no further processing of messages can be done.

I have added a check that finds this particular situation and causes the host process to fail if it happens:

Windows 10 running as a system service

I just updated a VM to 2.1.0.105. After the update the service refused to start. I tried Duplicati.WindowsService.exe uninstall, and this failed. Resorted to using ā€œsc delete Duplicatiā€ and this worked (after a reboot).

Ran ā€œDuplicati.WindowsService.exe installā€ to recreate the service. Now the service is there and starts, but the backup job is missing. (Donā€™t know if it is relevant, but it also seems to have ā€œforgottenā€ the password I set - I had to use the command-line tool to reset; Iā€™m assuming this is a side-effect of not finding its config?)

Iā€™ve looked at the various posts referring to a Windows update creating a new c:\Windows and leaving the Duplicati config in c:\WIndows.old - this does not appear to be my problem, as there is no c:\Windows.old, and there are what appears to be config files in C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati.

It is entirely possible that I am not invoking ā€œDuplicati.WindowsService.exe installā€ correctly - I will be researching to see if this is the case.

Yes, the jobs and the passwords are tied together.

That could explain it. When you run the service under the system account, Windows translates %LOCALAPPDATA% to C:\Windows\System32\config\systemprofile\AppData\Local.

This works fine until you install a Windows update, which will delete the entire C:\Windows folder. Previous updates would leave a C:\Windows.old folder where you could recover it, but it looks like this is no longer the case.

We have an open issue to change the default folder to not use C:\Windows, but for now you can use --server-datafolder=C:\Data\Duplicati. You need to add it for install, like:

Duplicati.WindowsService.exe install --server-datafolder=C:\Data\Duplicati

If you have recently upgraded Windows and do not have a copy, the configuration is lost and has to be set up again.

You can check the dates on the files in your current C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati and see if they were recently created.

I havenā€™t heard of it going away, but as of Windows 10 its retention time was shrunk to 10 days.

Duplicati would probably notice its folder going away, but nothing on the run history was posted.

Windows 11 is undergoing an update cycle, but Windows 10 is not getting new version updates. Question is still worth asking in case an update is being picked up very late.

There is also the chance a custom folder was set up, so depending on creation dates in default folder, a good search for Duplicati-server.sqlite or job databases on system might be worthwhile.

If @jberry02 can install Everything, a regular expression for job database search is found here. Server database is easier to search for, due to a fixed name, but access permission still matters.

Contents of C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati:

 Directory of C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati

01/15/2025  08:45 PM    <DIR>          .
01/15/2025  08:45 PM    <DIR>          ..
09/24/2024  12:22 PM           155,648 backup Duplicati-server 20240924012233.sqlite
03/10/2022  08:42 AM       841,383,936 backup KKYSCCOTIO 20220413025013.sqlite
10/11/2024  01:40 PM     2,918,273,024 backup KKYSCCOTIO 20241113095649.sqlite
01/15/2025  08:40 PM    <DIR>          control_dir_v2
01/15/2025  08:45 PM           163,840 Duplicati-server.sqlite
09/24/2024  12:19 PM           155,648 Duplicati-server20240924-132233.bak
09/24/2024  12:22 PM               283 installation.txt
12/12/2024  08:53 PM     2,918,273,024 KKYSCCOTIO.sqlite
09/24/2024  12:22 PM               247 machineid.txt
               8 File(s)  6,678,405,650 bytes

A search for ā€œDuplicati.sqliteā€ on C: returns the 2 files in the above list, and the one in the user area (which is not used).

As per @kenkendk I will delete the current service, move the above folder contents to the suggested directory and then re-create the service.

Actions taken:

  1. Duplicati.WindowsService.exe uninstall
  2. Contents of C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati moved to C:\Data\Duplicati
  3. C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati renamed to Duplicati.HOLD
  4. Duplicati.WindowsService.exe install --server-datafolder=C:\Data\Duplicati

And now my backup job shows up.

First attempt to run a backup results in

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

Ah - had to tell it the correct location for the database. Backup appears to be running now.

1 Like