I went ahead and tested the current beta release Release v2.2.1.0_beta_2026-03-05 · duplicati/duplicati · GitHub which added support for multiple backup destinations.
In the past I solved the lack of this feature on my own using rclone after the backup, which worked very well. However, I like it better if the whole functionality is handled in one tool. So I added a second destination to my already existing backup jobs:
- Job 1: first remote: Box.com, second remote: pcloud
- Job 2: first remote: onedrive, second remote: pcloud
Unfortunately I have several issues with this feature:
- The progress bar in both old and new UI always say “Backup completed” and shows 100 percent progress, even when there are still files being uploaded to the second remote. This is especially confusing when adding the second remote to an existing backup. It shows completed for hours and it seems nothing is happening.
- I get errors for every single file that is copied, but the files are copied anyways (at least they exist at pcloud). For this I also opened a bug report: Error "Cannot access a closed file" when using multiple destinations · Issue #6806 · duplicati/duplicati · GitHub
- I get an E-Mail with all the errors and I get a “warning” notification in the Duplicati UI saying: “Error while running Job 1”. But if I click on “Show Log” it shows me the log but with “Errors 0”, which makes no sense, because as mentioned earlier I actually get errors for every single file.
To 3:
This is the log which is displayed in the UI:
{
"DeletedFiles": 2,
"DeletedFolders": 0,
"ModifiedFiles": 3,
"ExaminedFiles": 22190,
"OpenedFiles": 7,
"AddedFiles": 4,
"SizeOfModifiedFiles": 27295827,
"SizeOfAddedFiles": 50608620,
"SizeOfExaminedFiles": 30829474029,
"SizeOfOpenedFiles": 77904447,
"NotProcessedFiles": 0,
"AddedFolders": 0,
"TooLargeFiles": 0,
"FilesWithError": 0,
"TimestampChangedFiles": 0,
"ModifiedFolders": 6,
"ModifiedSymlinks": 0,
"AddedSymlinks": 0,
"DeletedSymlinks": 0,
"PartialBackup": false,
"Dryrun": false,
"MainOperation": "Backup",
"CompactResults": {
"DeletedFileCount": 0,
"DownloadedFileCount": 0,
"UploadedFileCount": 0,
"DeletedFileSize": 0,
"DownloadedFileSize": 0,
"UploadedFileSize": 0,
"Dryrun": false,
"VacuumResults": null,
"MainOperation": "Compact",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "2026-03-17T15:52:08.7397298Z",
"BeginTime": "2026-03-17T15:52:06.0287975Z",
"Duration": "00:00:02.7109323",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null,
"BackendStatistics": {
"RemoteCalls": 11,
"BytesUploaded": 42325527,
"BytesDownloaded": 54763479,
"FilesUploaded": 3,
"FilesDownloaded": 3,
"FilesDeleted": 3,
"FoldersCreated": 0,
"RetryAttempts": 0,
"UnknownFileSize": 0,
"UnknownFileCount": 0,
"KnownFileCount": 1750,
"KnownFileSize": 42170350430,
"KnownFilesets": 18,
"LastBackupDate": "2026-03-17T16:51:17+01:00",
"BackupListCount": 18,
"TotalQuotaSpace": 0,
"FreeQuotaSpace": 0,
"AssignedQuotaSpace": -1,
"ReportedQuotaError": false,
"ReportedQuotaWarning": false,
"MainOperation": "Backup",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "0001-01-01T00:00:00",
"BeginTime": "2026-03-17T15:51:17.7818048Z",
"Duration": "00:00:00",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null
}
},
"VacuumResults": null,
"DeleteResults": {
"DeletedSetsActualLength": 3,
"DeletedSets": [
{
"Item1": 1,
"Item2": "2026-03-15T15:37:02+01:00"
},
{
"Item1": 8,
"Item2": "2026-03-09T04:00:00+01:00"
},
{
"Item1": 7,
"Item2": "2026-03-10T04:00:00+01:00"
}
],
"Dryrun": false,
"MainOperation": "Delete",
"CompactResults": {
"DeletedFileCount": 0,
"DownloadedFileCount": 0,
"UploadedFileCount": 0,
"DeletedFileSize": 0,
"DownloadedFileSize": 0,
"UploadedFileSize": 0,
"Dryrun": false,
"VacuumResults": null,
"MainOperation": "Compact",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "2026-03-17T15:52:08.7397298Z",
"BeginTime": "2026-03-17T15:52:06.0287975Z",
"Duration": "00:00:02.7109323",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null,
"BackendStatistics": {
"RemoteCalls": 11,
"BytesUploaded": 42325527,
"BytesDownloaded": 54763479,
"FilesUploaded": 3,
"FilesDownloaded": 3,
"FilesDeleted": 3,
"FoldersCreated": 0,
"RetryAttempts": 0,
"UnknownFileSize": 0,
"UnknownFileCount": 0,
"KnownFileCount": 1750,
"KnownFileSize": 42170350430,
"KnownFilesets": 18,
"LastBackupDate": "2026-03-17T16:51:17+01:00",
"BackupListCount": 18,
"TotalQuotaSpace": 0,
"FreeQuotaSpace": 0,
"AssignedQuotaSpace": -1,
"ReportedQuotaError": false,
"ReportedQuotaWarning": false,
"MainOperation": "Backup",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "0001-01-01T00:00:00",
"BeginTime": "2026-03-17T15:51:17.7818048Z",
"Duration": "00:00:00",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null
}
},
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "2026-03-17T15:52:08.7398654Z",
"BeginTime": "2026-03-17T15:52:01.7042832Z",
"Duration": "00:00:07.0355822",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null,
"BackendStatistics": {
"RemoteCalls": 11,
"BytesUploaded": 42325527,
"BytesDownloaded": 54763479,
"FilesUploaded": 3,
"FilesDownloaded": 3,
"FilesDeleted": 3,
"FoldersCreated": 0,
"RetryAttempts": 0,
"UnknownFileSize": 0,
"UnknownFileCount": 0,
"KnownFileCount": 1750,
"KnownFileSize": 42170350430,
"KnownFilesets": 18,
"LastBackupDate": "2026-03-17T16:51:17+01:00",
"BackupListCount": 18,
"TotalQuotaSpace": 0,
"FreeQuotaSpace": 0,
"AssignedQuotaSpace": -1,
"ReportedQuotaError": false,
"ReportedQuotaWarning": false,
"MainOperation": "Backup",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "0001-01-01T00:00:00",
"BeginTime": "2026-03-17T15:51:17.7818048Z",
"Duration": "00:00:00",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null
}
},
"RepairResults": null,
"TestResults": {
"MainOperation": "Test",
"VerificationsActualLength": 3,
"Verifications": [
{
"Key": "duplicati-20260317T155117Z.dlist.zip.aes",
"Value": []
},
{
"Key": "duplicati-i4566667fd61849169fb1573318dcde30.dindex.zip.aes",
"Value": []
},
{
"Key": "duplicati-bb6a2810402ae496891a3d812dde3f096.dblock.zip.aes",
"Value": []
}
],
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "2026-03-17T15:52:20.020025Z",
"BeginTime": "2026-03-17T15:52:13.1507325Z",
"Duration": "00:00:06.8692925",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null,
"BackendStatistics": {
"RemoteCalls": 11,
"BytesUploaded": 42325527,
"BytesDownloaded": 54763479,
"FilesUploaded": 3,
"FilesDownloaded": 3,
"FilesDeleted": 3,
"FoldersCreated": 0,
"RetryAttempts": 0,
"UnknownFileSize": 0,
"UnknownFileCount": 0,
"KnownFileCount": 1750,
"KnownFileSize": 42170350430,
"KnownFilesets": 18,
"LastBackupDate": "2026-03-17T16:51:17+01:00",
"BackupListCount": 18,
"TotalQuotaSpace": 0,
"FreeQuotaSpace": 0,
"AssignedQuotaSpace": -1,
"ReportedQuotaError": false,
"ReportedQuotaWarning": false,
"MainOperation": "Backup",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "0001-01-01T00:00:00",
"BeginTime": "2026-03-17T15:51:17.7818048Z",
"Duration": "00:00:00",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null
}
},
"LockResults": null,
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "2026-03-17T15:52:20.0565891Z",
"BeginTime": "2026-03-17T15:51:17.7814611Z",
"Duration": "00:01:02.2751280",
"MessagesActualLength": 32,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": [
"2026-03-17 16:51:17 +01 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Backup has started",
"2026-03-17 16:51:24 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started: ()",
"2026-03-17 16:51:31 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed: (1.71 KiB)",
"2026-03-17 16:51:47 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes (38.18 MiB)",
"2026-03-17 16:51:58 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes (38.18 MiB)",
"2026-03-17 16:51:58 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes (44.79 KiB)",
"2026-03-17 16:51:59 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes (44.79 KiB)",
"2026-03-17 16:52:00 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-20260317T155117Z.dlist.zip.aes (2.15 MiB)",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-20260317T155117Z.dlist.zip.aes (2.15 MiB)",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler:RetentionPolicy-StartCheck]: Start checking if backups can be removed",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler:RetentionPolicy-FramesAndIntervals]: Time frames and intervals pairs: 7.00:00:00 / 1.00:00:00, 28.00:00:00 / 7.00:00:00, 360.00:00:00 / 30.00:00:00",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler:RetentionPolicy-BackupList]: Backups to consider: 03/15/2026 15:37:02, 03/15/2026 04:00:00, 03/14/2026 04:00:00, 03/13/2026 04:00:00, 03/12/2026 04:00:00, 03/11/2026 04:00:00, 03/10/2026 04:00:00, 03/09/2026 04:00:00, 03/05/2026 04:00:00, 02/26/2026 04:00:00, 02/19/2026 04:00:00, 01/14/2026 06:00:00, 12/10/2025 06:00:00, 11/05/2025 06:00:00, 10/01/2025 07:00:00, 08/27/2025 07:00:00, 07/23/2025 07:00:00, 06/18/2025 07:00:00, 05/14/2025 07:00:00, 04/09/2025 07:00:00",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler:RetentionPolicy-BackupsToDelete]: Backups outside of all time frames and thus getting deleted: ",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler:RetentionPolicy-AllBackupsToDelete]: All backups to delete: 03/15/2026 15:37:02, 03/10/2026 04:00:00, 03/09/2026 04:00:00",
"2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler-DeleteRemoteFileset]: Deleting 3 remote fileset(s) ...",
"2026-03-17 16:52:04 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Started: duplicati-20260309T030000Z.dlist.zip.aes (2.14 MiB)",
"2026-03-17 16:52:04 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Completed: duplicati-20260309T030000Z.dlist.zip.aes (2.14 MiB)",
"2026-03-17 16:52:04 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Started: duplicati-20260310T030000Z.dlist.zip.aes (2.14 MiB)",
"2026-03-17 16:52:05 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Completed: duplicati-20260310T030000Z.dlist.zip.aes (2.14 MiB)",
"2026-03-17 16:52:05 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Started: duplicati-20260315T143702Z.dlist.zip.aes (2.15 MiB)"
],
"Warnings": [],
"Errors": [],
"BackendStatistics": {
"RemoteCalls": 11,
"BytesUploaded": 42325527,
"BytesDownloaded": 54763479,
"FilesUploaded": 3,
"FilesDownloaded": 3,
"FilesDeleted": 3,
"FoldersCreated": 0,
"RetryAttempts": 0,
"UnknownFileSize": 0,
"UnknownFileCount": 0,
"KnownFileCount": 1750,
"KnownFileSize": 42170350430,
"KnownFilesets": 18,
"LastBackupDate": "2026-03-17T16:51:17+01:00",
"BackupListCount": 18,
"TotalQuotaSpace": 0,
"FreeQuotaSpace": 0,
"AssignedQuotaSpace": -1,
"ReportedQuotaError": false,
"ReportedQuotaWarning": false,
"MainOperation": "Backup",
"ParsedResult": "Success",
"Interrupted": false,
"Version": "2.2.1.0 (2.2.1.0_beta_2026-03-05)",
"EndTime": "0001-01-01T00:00:00",
"BeginTime": "2026-03-17T15:51:17.7818048Z",
"Duration": "00:00:00",
"MessagesActualLength": 0,
"WarningsActualLength": 0,
"ErrorsActualLength": 0,
"Messages": null,
"Warnings": null,
"Errors": null
}
}
And this is the email I got after job completion of the same backup job (the apprise warnings can be ignore, was just testing alternative notifications):
DeletedFiles: 2
DeletedFolders: 0
ModifiedFiles: 3
ExaminedFiles: 22190
OpenedFiles: 7
AddedFiles: 4
SizeOfModifiedFiles: 27295827
SizeOfAddedFiles: 50608620
SizeOfExaminedFiles: 30829474029
SizeOfOpenedFiles: 77904447
NotProcessedFiles: 0
AddedFolders: 0
TooLargeFiles: 0
FilesWithError: 0
TimestampChangedFiles: 0
ModifiedFolders: 6
ModifiedSymlinks: 0
AddedSymlinks: 0
DeletedSymlinks: 0
PartialBackup: False
Dryrun: False
MainOperation: Backup
ParsedResult: Error
Interrupted: False
Fatal: False
Version: 2.2.1.0 (2.2.1.0_beta_2026-03-05)
EndTime: 03/17/2026 16:52:20 (1773762740)
BeginTime: 03/17/2026 16:51:17 (1773762677)
Duration: 00:01:02.2751280
MessagesActualLength: 39
WarningsActualLength: 5
ErrorsActualLength: 14
LimitedMessages: [
2026-03-17 16:51:17 +01 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Backup has started,
2026-03-17 16:51:24 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started: (),
2026-03-17 16:51:31 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed: (1.71 KiB),
2026-03-17 16:51:47 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes (38.18 MiB),
2026-03-17 16:51:58 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes (38.18 MiB),
2026-03-17 16:51:58 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes (44.79 KiB),
2026-03-17 16:51:59 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes (44.79 KiB),
2026-03-17 16:52:00 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-20260317T155117Z.dlist.zip.aes (2.15 MiB),
2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-20260317T155117Z.dlist.zip.aes (2.15 MiB),
2026-03-17 16:52:01 +01 - [Information-Duplicati.Library.Main.Operation.DeleteHandler:RetentionPolicy-StartCheck]: Start checking if backups can be removed,
...
]
LimitedWarnings: [
2026-03-17 16:52:42 +01 - [Warning-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Could not copy 3 files.,
2026-03-17 16:53:32 +01 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 1 of 3 failed for: http://apprise:8000/notify/default
HttpRequestException: Response status code does not indicate success: 400 (Bad Request).,
2026-03-17 16:53:33 +01 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 2 of 3 failed for: http://apprise:8000/notify/default
InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.,
2026-03-17 16:53:34 +01 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 3 of 3 failed for: http://apprise:8000/notify/default
InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.,
2026-03-17 16:53:34 +01 - [Warning-Duplicati.Library.Modules.Builtin.ReportHelper-ReportSubmitError]: Failed to send message: System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
]
LimitedErrors: [
2026-03-17 16:52:28 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:52:41 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:52:42 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:52:49 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:52:58 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:52:59 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:53:06 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:53:15 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:53:16 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
2026-03-17 16:53:22 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
ObjectDisposedException: Cannot access a closed file.,
...
]
Log data:
2026-03-17 16:52:28 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:52:41 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:52:42 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:52:42 +01 - [Warning-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Could not copy 3 files.
2026-03-17 16:52:49 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:52:58 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:52:59 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:06 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:15 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:16 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:22 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-20260317T155117Z.dlist.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:31 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-b14e90fa314b848389c83e516b80313f7.dblock.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:32 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Error copying duplicati-i00f639fd1b604d70ae11255ddfde3e13.dindex.zip.aes: Cannot access a closed file.
System.ObjectDisposedException: Cannot access a closed file.
at System.IO.FileStream.set_Position(Int64 value)
at Duplicati.StreamUtil.WrappingStream.set_Position(Int64 value)
at RemoteSynchronization.RemoteSynchronizationRunner.CopyAsync(LightWeightBackendManager b_src, LightWeightBackendManager b_dst, IEnumerable`1 files, Config config, CancellationToken token)
2026-03-17 16:53:32 +01 - [Error-RemoteSynchronization.RemoteSynchronizationRunner-rsync]: Could not copy 3 files. Not retrying any more.
2026-03-17 16:53:32 +01 - [Error-Duplicati.Library.Modules.Builtin.RemoteSynchronizationModule-RemoteSyncFailed]: Remote synchronization to RemoteSyncDestinationConfig { Config = Config { Src = , Dst = pcloud://eapi.pcloud.com/Backup?authid=REDACTED, AutoCreateFolders = True, BackendRetries = 3, BackendRetryDelay = 1000, BackendRetryWithExponentialBackoff = True, Confirm = True, DryRun = False, DstOptions = System.Collections.Generic.List`1[System.String], Force = False, GlobalOptions = System.Collections.Generic.List`1[System.String], LogFile = , LogLevel = Information, ParseArgumentsOnly = False, Progress = False, Retention = False, Retry = 3, SrcOptions = System.Collections.Generic.List`1[System.String], VerifyContents = False, VerifyGetAfterPut = False }, Mode = Inline, Interval = , Count = } failed with exit code 3.
2026-03-17 16:53:32 +01 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 1 of 3 failed for: http://apprise:8000/notify/default
System.Net.Http.HttpRequestException: Response status code does not indicate success: 400 (Bad Request).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2026-03-17 16:53:33 +01 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 2 of 3 failed for: http://apprise:8000/notify/default
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2026-03-17 16:53:34 +01 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 3 of 3 failed for: http://apprise:8000/notify/default
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2026-03-17 16:53:34 +01 - [Warning-Duplicati.Library.Modules.Builtin.ReportHelper-ReportSubmitError]: Failed to send message: System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
at Duplicati.Library.Utility.RetryHelper.Retry(Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.SendMessage(HttpClient client, SendRequestType target, String subject, String body)
at Duplicati.Library.Utility.Utility.Await[T](Task`1 task)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.SendMessage(String subject, String body)
at Duplicati.Library.Modules.Builtin.ReportHelper.OnFinish(IBasicResults result, Exception exception)
As a side note: After copying the email I just realized that the pcloud auth string is included in there. In my opinion auth strings should not included in cleartext emails, but I’m not sure if this is intended. I’m talking about this line (the “REDACTED” was added by me) :
2026-03-17 16:53:32 +01 - [Error-Duplicati.Library.Modules.Builtin.RemoteSynchronizationModule-RemoteSyncFailed]: Remote synchronization to RemoteSyncDestinationConfig { Config = Config { Src = , Dst = pcloud://eapi.pcloud.com/Backup?authid=REDACTED, AutoCreateFolders = True, BackendRetries = 3, BackendRetryDelay = 1000, BackendRetryWithExponentialBackoff = True, Confirm = True, DryRun = False, DstOptions = System.Collections.Generic.List
1[System.String], Force = False, GlobalOptions = System.Collections.Generic.List1[System.String], LogFile = , LogLevel = Information, ParseArgumentsOnly = False, Progress = False, Retention = False, Retry = 3, SrcOptions = System.Collections.Generic.List`1[System.String], VerifyContents = False, VerifyGetAfterPut = False }, Mode = Inline, Interval = , Count = } failed with exit code 3.
Has anybody else tested this feature and has the same issues?