Release: 2.2.0.101 (Canary) 2025-11-20

2.2.0.101_canary_2025-11-20

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

Changes in this versions

This version now runs on .NET10! Apart from some speedup, the transition should not be noticeable.

This version also adds initial support for MacOS Photos, where it can now read photos, even if they are stored in iCloud.
Previous versions would back up the folder, which might not include all photos.
Use the option --photos-handling to disable or tweak this feature.

When using advanced options, the human-readable description is now displayed with the option name, and you can search for either.

Detailed list of changes:

  • Fixed an issue with SyncTool and retries that would fail on some backends
  • Improved support for OEM injection
  • Return status of backup in ServerUtil, thanks @greyxr
  • Updated to run on .NET10
  • Improved deadlock detection for restore with fewer false positives
  • Updated Uplink.NET to v2.14.3623 (for Storj backend)
  • Added support for MacOS Photos
  • Disabled internal timeout in AzureBlobStorage
  • Updated localizations, thanks to all translators!

ngclient changes:

  • Updated to latest ShipUI
  • Preload modules for better desktop performance
  • Fixed some issues with localization not being applied
  • Updates to the options list
  • Updated localizations, thanks to all translators!
  • Fixed an issue with Rclone not maintaining letter-case for remote
  • Simplified the schedule setup page
  • Improved AuthID picking
  • Improved integration with console
  • Cleaned the sidebar slightly
  • Fixed an issue with styling in settings
  • Restore flow will now default to not overwrite existing files
  • Added both option name and short description to advanced options
  • Fixed not showing “Verifying” at the start of the backup operation
  • Handle global settings with and without -- prefix
  • Upgraded to Anguler 21
2 Likes

I favor ngclient now allowing typing of times (like ngax) for its custom schedule, however requesting such a schedule seems to prevent Continue or Submit, and browser console is spitting various errors.

Left bar rearrangement dropped “Use old UI”. Seems a bit early. Maybe a bug?
To set the schedule, I got into ngax through URL and entered my schedule in it.

EDIT 1:

and ngclient displayed it incorrectly. Schedule was set for 11/21. ngax shows as

image

ngclient new UI incorrectly shows as

image

EDIT 2:

After the actual run at 7:20 AM Nov 20, new UI remains confused about next run:

image

I took the opportunity to test something I noticed a while ago, and it happened again. In this case my Fedora server.

Job is scheduled for 09:00, paused Duplicati in the GUI at 08.58 then manually stopped the service - it’s also set to wait 10min on start before resuming. I then upgraded to this release and started the service again, finishing at dead on 09:00 then checked the GUI. Duplicati was still paused, but the job at 09:00 started and began to run. I don’t think the job should be started in this case.

It looked to me like this broke in 2.1.0.118_canary_2025-05-12 and so also got into Stable release. I was testing jobs that already missed their run time, and yours was maybe slightly different timing (although “dead on 9:00” vs schedule is a close call).

Thanks for the report, and please add any additional information that might inform.

1 Like

Back button on Schedule screen does not go to previous screen (Source data).
It acts like it’s ignored, but Edge console shows this:

image

Workaround is to click the Source Data screen in the row of buttons up top.

Another scheduling oddity I noticed when editing an existing job is it offers schedule, say 13:00 daily, but runs it prematurely on Continue, during edit. Watching browser developer tools, Continue scheduled run for day before, presumably causing scheduler to think it’s past due (it is…) and run it then.

On better news, Details view is one line, and List view three-dot menu isn’t extending off the bottom or the right side of the screen any more, it seems.

A forum user was asking about Firefox display issues here, so I tried that as well.

image

is pretty chopped. In List view, the text seems barely there, but not the scrollbar.

Oops! NGCLIENT is not recognizing my (correct) login password. NGAX is fine.

Thank you… Steve

Firefox, MACOSX Tahoe, MacBook Pro M2

Adding my own experiences trying to us the new UI on my phone, I use Brave on Android. An example being trying to run a repair, and you can forget trying to run a purge as even when I think I get it right, it fails stating errors in the command.

It’s almost impossible to use with elements not showing unless I rotate the phone, and the left menu getting severely truncated.

If I switch the tab to “Desktop” it’s more usable as everything is there, but you have to pinch-zoom and scroll about all over the place.

I used to be able to just switch back to the old UI which worked, but since that was moved to settings it no longer works and just stays in the new UI - this does work on my desktop browsers though.

Thanks for reporting. I fixed it.

That sounds like a timezone issue where it crosses a day due to UTC offsets. What timezone offset was this on?

Correct. as @ts678 points out, this broke in 2.1.0.118.
It is fixed and will be in next canary.

Thanks for reporting. I have fixed it.

This also sounds like some timezone offset issue.

I have registered an issue for that.

I think this may be some character that is encoded incorrectly.
Without sharing your password (obviously), can you share the most likely non-standard character that could cause it? I tried test#% as the password, and tried setting it with both ngclient and ngax, and both methods allowed login from either.

We have not optimized for small screens yet. There is an issue tracking it.

1 Like

Thanks, I subscribed to the issue, but may I suggest that the mobile version defaults to the old UI until it’s fixed or make it a separate option, at least for me the new UI is almost useless on my phone and even worse now that I cannot even revert to the old UI unless I switch to desktop-mode and then that’s not great.

Eastern Standard Time so at UTC-5 since Sunday Nov 2 at 2 A.M. (after which Duplicati ran my 7:20 job at 6:20, just as if that half of the DST fix wasn’t done).

EDIT 1:

If I try setting 7:20 AM on Dec 4 in ngax, it looks right. Edit in ngclient receives

    "Schedule": {
        "ID": 1,
        "Tags": [
            "ID=4"
        ],
        "Time": "2025-12-04T12:20:00Z",
        "Repeat": "1D",
        "LastRun": "0001-01-01T05:00:00Z",
        "Rule": "AllowedWeekDays=Monday,Tuesday,Thursday,Friday,Saturday,Sunday,Wednesday",
        "AllowedDays": [
            "mon",
            "Monday",
            "tue",
            "Tuesday",
            "thu",
            "Thursday",
            "fri",
            "Friday",
            "sat",
            "Saturday",
            "sun",
            "Sunday",
            "wed",
            "Wednesday"
        ]
    },

which looks right for UTC-5. Problem is, ngclient says Dec 3. No console error.