# Release: 2.1.0.102 (Canary) 2024-12-12

**URL:** https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669
**Category:** Releases
**Created:** [December 12, 2024, 2:34pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669 "2024-12-12T14:34:19Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 12, 2024, 2:34pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/1 "2024-12-12T14:34:19Z")

</div>

# [2.1.0.102\_canary\_2024-12-12](https://github.com/duplicati/duplicati/releases/tag/v2.1.0.102_canary_2024-12-12)

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

**Note that this build is using .NET8, unlike the 2.0.8.1 build**

**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:

- Upgraded FluentFTP to fix a crash on socket timeout
- Removed named channels to fix a rare exception
- Rewrote the restore process to be multithreaded and target optimal disk I/O write performance
- Added missing documentation to the iDrive e2 backend
- Added activity timeout on backend transfers
- Added support for generating a “forever token”

---

<div class="post-metadata">

### Author: ![Taomyn](https://forum.duplicati.com/user_avatar/forum.duplicati.com/taomyn/32/2665_2.png) [@Taomyn](https://forum.duplicati.com/u/Taomyn)
#### Post date: [December 13, 2024, 9:04am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/2 "2024-12-13T09:04:35Z")

</div>

I have upgraded from .101 on all my Win11,Win2025,Debian,Fedora, RPI-OS (Arm7/Arm64) and so far no installation issues and backups seem to be fine.

I did see with the previous Windows canary, all versions, an issue with the tray icon process causing an exception to pop up on-screen when restarting or shutting down the machine. I will post a screen shot if this canary does the same thing.

---

<div class="post-metadata">

### Author: ![Taomyn](https://forum.duplicati.com/user_avatar/forum.duplicati.com/taomyn/32/2665_2.png) [@Taomyn](https://forum.duplicati.com/u/Taomyn)
#### Post date: [December 13, 2024, 9:54am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/3 "2024-12-13T09:54:10Z")

</div>

It’s happening, and all I did was sign out this time

 ![image](https://forum.duplicati.com/uploads/default/original/2X/6/638fde07281a0d5bd4eb873ded372b906b19078f.png)

---

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 13, 2024, 1:16pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/4 "2024-12-13T13:16:39Z")

</div>

> [@Taomyn](#):
>
> It’s happening, and all I did was sign out this time

I tried this a few times and I could not replicate. Is your setup with a WindowsService and a standalone TrayIcon?

---

<div class="post-metadata">

### Author: ![Taomyn](https://forum.duplicati.com/user_avatar/forum.duplicati.com/taomyn/32/2665_2.png) [@Taomyn](https://forum.duplicati.com/u/Taomyn)
#### Post date: [December 13, 2024, 1:34pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/5 "2024-12-13T13:34:47Z")

</div>

Yes, all are Duplicati as a service using System account, and the tray icon with logged in user account.

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 13, 2024, 3:33pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/6 "2024-12-13T15:33:33Z")

</div>

I have noticed some strange behavior compared to the previous version (not in all installations, everything here is always a Windows service):

When rebuilding the database, you can see it nicely – I didn’t cancel anything:

 ![13-12-2024_16-29-05](https://forum.duplicati.com/uploads/default/original/2X/b/b8e3b5ab589dccc8835a889aab6afdfad4e2bd2d.png)

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 14, 2024, 6:52am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/7 "2024-12-14T06:52:10Z")

</div>

Some jobs work as before. I think the database rebuild no longer works (it wasn’t a problem in the previous version):

```plaintext
14. Dez. 2024 07:49: Operation Get with file duplicati-b8f3bd1d27b2f4bed8b609b283f1e9cee.dblock.zip attempt 1 of 5 failed with message: A task was canceled.
System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at Duplicati.StreamUtil.TimeoutObservingStream.WriteImplAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Duplicati.Library.Utility.ThrottledStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.Stream.<>c.<BeginWriteInternal>b__52_0(Object <p0>)
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
   at Duplicati.Library.Utility.Utility.CopyStreamAsync(Stream source, Stream target, Boolean tryRewindSource, CancellationToken cancelToken, Byte[] buf)
   at Duplicati.Library.Utility.Utility.CopyStreamAsync(Stream source, Stream target, CancellationToken cancelToken)
   at Duplicati.Library.Backend.MicrosoftGraphBackend.GetAsync(String remotename, Stream stream, CancellationToken cancelToken)
   at Duplicati.Library.Main.BackendManager.DoGetFile(FileEntryItem item, IEncryption useDecrypter, CancellationToken cancellationToken)
   at Duplicati.Library.Main.BackendManager.DoGetAsync(FileEntryItem item, CancellationToken cancellationToken)
   at Duplicati.Library.Utility.Utility.Await(Task task)
   at Duplicati.Library.Main.BackendManager.ThreadRun()

```

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 14, 2024, 6:54am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/8 "2024-12-14T06:54:15Z")

</div>

I was just wondering if cancellation requests that were registered at some point in the past are suddenly being processed. Past means - in an older version, and despite server restarts in the meantime.

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 14, 2024, 7:29am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/9 "2024-12-14T07:29:27Z")

</div>

At the end of a backup job, during the check:

 ![image](https://forum.duplicati.com/uploads/default/original/2X/3/327cbf1c0962027f8674764da1d097a567fb99ca.png)

---

<div class="post-metadata">

### Author: ![Folgore101](https://forum.duplicati.com/user_avatar/forum.duplicati.com/folgore101/32/421_2.png) [@Folgore101](https://forum.duplicati.com/u/Folgore101)
#### Post date: [December 14, 2024, 10:54am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/10 "2024-12-14T10:54:25Z")

</div>

![Screenshot 2024-12-14 115220](https://forum.duplicati.com/uploads/default/original/2X/5/5afade088e2a017b8e6221709c8d83d04bbc6f04.png)  
It tells me there is a version 2.1.0.103 but it can’t find it.

---

<div class="post-metadata">

### Author: ![Hannes3](https://forum.duplicati.com/user_avatar/forum.duplicati.com/hannes3/32/2737_2.png) [@Hannes3](https://forum.duplicati.com/u/Hannes3)
#### Post date: [December 14, 2024, 11:11am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/11 "2024-12-14T11:11:44Z")

</div>

The same here:  
[Not Found](https://updates.duplicati.com/canary/duplicati-2.1.0.103_canary_2024-12-12-win-x64-gui.msi)

There is something strange in the name of the subdirectory (çanary)

---

<div class="post-metadata">

### Author: ![ts678](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/t/8491ac/32.png) [@ts678](https://forum.duplicati.com/u/ts678)
#### Post date: [December 14, 2024, 12:24pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/12 "2024-12-14T12:24:21Z")

</div>

I’m still a Canary behind this one, but it looks like the CLI updater broke.  
Also confirming a similar issue with the mystery release announcement.

```plaintext
C:\Duplicati\duplicati-2.0.9.106_canary_2024-09-03-win-x64-gui>Duplicati.CommandLine.AutoUpdater check
New version is available: Duplicati v2.1.0.103 - Canary

C:\Duplicati\duplicati-2.0.9.106_canary_2024-09-03-win-x64-gui>cd ..\*2.0.9.107_*

C:\Duplicati\duplicati-2.0.9.107_canary_2024-09-11-win-x64-gui>Duplicati.CommandLine.AutoUpdater check
Error detected: System.NullReferenceException: Object reference not set to an instance of an object.
   at Duplicati.Library.Utility.HttpClientExtensions.DownloadFile(HttpClient client, HttpRequestMessage request, String filename, Action`1 progressReportingAction, CancellationToken cancellationToken)
   at Duplicati.Library.AutoUpdater.UpdaterManager.CheckForUpdate(ReleaseType channel)
Error detected: System.NullReferenceException: Object reference not set to an instance of an object.
   at Duplicati.Library.Utility.HttpClientExtensions.DownloadFile(HttpClient client, HttpRequestMessage request, String filename, Action`1 progressReportingAction, CancellationToken cancellationToken)
   at Duplicati.Library.AutoUpdater.UpdaterManager.CheckForUpdate(ReleaseType channel)
No updates found

C:\Duplicati\duplicati-2.0.9.107_canary_2024-09-11-win-x64-gui>

```

EDIT:

```plaintext
C:\Duplicati\duplicati-2.1.0.102_canary_2024-12-12-win-x64-gui>Duplicati.CommandLine.AutoUpdater check
Error detected: System.NullReferenceException: Object reference not set to an instance of an object.
   at Duplicati.Library.Utility.HttpClientExtensions.DownloadFile(HttpClient client, HttpRequestMessage request, String filename, Action`1 progressReportingAction, CancellationToken cancellationToken)
   at Duplicati.Library.AutoUpdater.UpdaterManager.CheckForUpdate(ReleaseType channel)
Error detected: System.NullReferenceException: Object reference not set to an instance of an object.
   at Duplicati.Library.Utility.HttpClientExtensions.DownloadFile(HttpClient client, HttpRequestMessage request, String filename, Action`1 progressReportingAction, CancellationToken cancellationToken)
   at Duplicati.Library.AutoUpdater.UpdaterManager.CheckForUpdate(ReleaseType channel)
No updates found

C:\Duplicati\duplicati-2.1.0.102_canary_2024-12-12-win-x64-gui>cd ..\*2.1.0.2_*

C:\Duplicati\duplicati-2.1.0.2_beta_2024-11-29-win-x64-gui>Duplicati.CommandLine.AutoUpdater check
Error detected: System.NullReferenceException: Object reference not set to an instance of an object.
   at Duplicati.Library.Utility.HttpClientExtensions.DownloadFile(HttpClient client, HttpRequestMessage request, String filename, Action`1 progressReportingAction, CancellationToken cancellationToken)
   at Duplicati.Library.AutoUpdater.UpdaterManager.CheckForUpdate(ReleaseType channel)
Error detected: System.NullReferenceException: Object reference not set to an instance of an object.
   at Duplicati.Library.Utility.HttpClientExtensions.DownloadFile(HttpClient client, HttpRequestMessage request, String filename, Action`1 progressReportingAction, CancellationToken cancellationToken)
   at Duplicati.Library.AutoUpdater.UpdaterManager.CheckForUpdate(ReleaseType channel)
No updates found

C:\Duplicati\duplicati-2.1.0.2_beta_2024-11-29-win-x64-gui>

```

`https://updates.duplicati.com/canary/latest-v2.manifest` does indeed talk about 2.1.0.103.

 ![image](https://forum.duplicati.com/uploads/default/original/2X/b/bca666ce461cd2fe9654443d4baaec71aa8eb04e.png)

---

<div class="post-metadata">

### Author: ![Hannes3](https://forum.duplicati.com/user_avatar/forum.duplicati.com/hannes3/32/2737_2.png) [@Hannes3](https://forum.duplicati.com/u/Hannes3)
#### Post date: [December 14, 2024, 2:15pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/13 "2024-12-14T14:15:21Z")

</div>

I have the same problem. It happens after a period of “sleep”.

(no windows service)

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 15, 2024, 2:20pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/14 "2024-12-15T14:20:28Z")

</div>

So, here’s what it looks like for me (Windows service, destination almost always SharePoint, upgrade from 2.1.0.101 to 2.1.0.102):

Some jobs work. Others no longer work, and you get a message saying that a task has been canceled, whatever that means – I didn’t click Cancel):

 ![image](https://forum.duplicati.com/uploads/default/original/2X/7/7ae58eaef9a39ad13e0c973931bf00ac3c63bbdd.png)

---

<div class="post-metadata">

### Author: ![ts678](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/t/8491ac/32.png) [@ts678](https://forum.duplicati.com/u/ts678)
#### Post date: [December 15, 2024, 2:29pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/15 "2024-12-15T14:29:35Z")

</div>

> [@ollibraun](#):
>
> Some jobs work. Others no longer work

> [@ollibraun](#):
>
> destination almost always SharePoint

Is there a relationship between that and this problem? Unfortunately, I don’t have SharePoint.

EDIT:

> [@ollibraun](#):
>
> ` at Duplicati.Library.Backend.MicrosoftGraphBackend.GetAsync(String remotename, Stream stream, CancellationToken cancelToken)`

shows it failing on some MS destination (now revealed). Does it fail similarly on other storage?

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 15, 2024, 2:59pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/16 "2024-12-15T14:59:02Z")

</div>

Approximate numbers: I have about 20 targets, 75 percent of which are SharePoint or OneDrive.

The non-Microsoft targets work, but most of the Microsoft targets work too.

Only five Microsoft targets don’t work.

Unfortunately, this is not enough to make a statistical statement as to whether it only affects MS targets.

What does “TaskCanceledException: A task was canceled.” mean?

---

<div class="post-metadata">

### Author: ![ts678](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/t/8491ac/32.png) [@ts678](https://forum.duplicati.com/u/ts678)
#### Post date: [December 15, 2024, 3:39pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/17 "2024-12-15T15:39:23Z")

</div>

> [@ollibraun](#):
>
> What does “TaskCanceledException: A task was canceled.” mean?

It’s an internal thing. Single process has many tasks inside it. Microsoft:

[Task cancellation](https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/task-cancellation) (but I’m guessing a bit because I don’t write the code)  
[How to: Cancel a Task and Its Children](https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-cancel-a-task-and-its-children) links to [TaskCanceledException](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskcanceledexception?view=net-8.0)

> [@ollibraun](#):
>
> Only five Microsoft targets don’t work.

Still looking for anything they might share. You can certainly try more tests with them.  
Easy is `Verify files` button, which (in addition to DB tests) downloads a file sample.

Harder would be GUI `Export As Command-line` then run BackendTool `get` some files.  
[BackendTester](https://docs.duplicati.com/duplicati-programs/command-line-interface-cli-1/backendtester) is automatic, but you’d have to modify the URL to use an empty folder.

Ultimately this is going to need dev help, but we can poke around to get the first clues.

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 16, 2024, 7:25am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/18 "2024-12-16T07:25:06Z")

</div>

In between:

1. I think it only happens when compacting SharePoint backups.

2. On a device with three non-working jobs, I went back to.101. This works for backing up, compacting and rebuilding the database.

Here is the error that apparently occurs during compacting:

 ![image](https://forum.duplicati.com/uploads/default/original/2X/4/4afbae9ffbf9485d2c0d0054a855d936b19dfb76.png)

---

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 16, 2024, 10:07pm UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/19 "2024-12-16T22:07:58Z")

</div>

> [@Hannes3](#):
>
> I have the same problem. It happens after a period of “sleep”.

And @Taomyn , I have created [an issue for the crash message](https://github.com/duplicati/duplicati/issues/5776).

> [@ollibraun](#):
>
> ```plaintext
> 14. Dez. 2024 07:49: Operation Get with file duplicati-b8f3bd1d27b2f4bed8b609b283f1e9cee.dblock.zip attempt 1 of 5 failed with message: A task was canceled.
> System.Threading.Tasks.TaskCanceledException: A task was canceled.
> at Duplicati.StreamUtil.TimeoutObservingStream.WriteImplAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
> 
> ```

This looks like a problem with the new timeout detection feature. Looking at the code, it might be caused by the retry-backoff feature in SharePoint. If there is a retry wait period, nothing will happen in this period, so the timeout will kick in.

Can you try to set the option `--read-write-timeout=1h` to allow it to wait 1 hour (as opposed to 30s) ? I would imagine this would fix the issue. I have created [an issue to track the premature timeout](https://github.com/duplicati/duplicati/issues/5777).

> [@ollibraun](#):
>
> What does “TaskCanceledException: A task was canceled.” mean?

In short it means: a task was started, but then cancelled (read: stopped) before it could complete.

---

<div class="post-metadata">

### Author: ![ollibraun](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/o/df705f/32.png) [@ollibraun](https://forum.duplicati.com/u/ollibraun)
#### Post date: [December 17, 2024, 5:27am UTC](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669/20 "2024-12-17T05:27:35Z")

</div>

Unfortunately, the read-write-timeout option does not change this behavior. It may well be that the abort message always comes after 30 seconds, even if the option is set to one hour.

[Next page](https://forum.duplicati.com/t/release-2-1-0-102-canary-2024-12-12/19669.md?page=2)
