Release: 2.3.0.1 (Stable) 2026-04-24

2.3.0.1_stable_2026-04-24

About this release

This is the next stable release for Duplicati 2.3, building on the 2.2 release with new features and bug fixes.

A big thanks to the supportive Duplicati user base who continues to contribute with fixes, issue reports and feature requests.

If you have already been using the beta release, this release is the same as v2.2.1.0, but includes a bugfix and two library updates.

This release patches version 2.3.0.0 with fixes for a few issues that were discovered after the release.

Database Schema Update

Note: This update changes the Server database schema to version 11. The database tool can perform downgrades if needed.

Multiple Backup Destinations

This version adds support for configuring multiple destinations for a single backup job.
This allows you to backup to multiple locations simultaneously, such as a local drive and a cloud storage provider.
With multiple destinations, you can now configure a complete 3-2-1 backup strategy in a single job.
After each completed backup, Duplicati will ensure that data is available on all destinations.

A 3-2-1 backup strategy is where you have 3 copies of your data, 2 of which are on different media, and 1 of which is offsite/immutable.

Remote Sources

Remote sources are now easier to use with UI support and a prominent button on the source page.
This version also adds support for using Box, Dropbox, OneDrive, and Google Drive as remote sources.

Windows Folder Status Indicator

Thanks to @AndyBodnar, this version adds a Windows shell extension that shows the backup status of folders with icon overlays.
The feature is disabled by default but can be enabled with the option --enable-folder-status-service on either Server or TrayIcon.
Once enabled, run the RegisterFolderStatusExtension.ps1 script to register the extension and see backup status in Windows Explorer.

Google Workspace Backup

This version adds support for backing up Google Workspace, including Gmail, Google Drive, Contacts, Calendar, and Chat.
This is a proprietary module (source available) that requires a license to use in production.
Without a license, testing is possible with up to 5 users.

To prevent proprietary modules from loading, set the environment variable DUPLICATI_DISABLE_PROPRIETARY_MODULES=1 or delete files named Duplicati.Proprietary.* from your installation.

Office 365 Backup

This version adds support for backing up Office 365 tenants, including mailboxes, calendars, contacts, OneDrive, Planner, Tasks, Teams, Sites, and more.
This is a proprietary module (source available) that requires a license to use in production.
Without a license, testing is possible with up to 5 users + 5 sites + 5 groups.

Full Disk Backup

This version adds simple support for backup and restore of entire disks, including the MBR/GPT partition table.
In this initial version, only Windows is supported, and the backup accesses the disk directly (no VSS).
Support for Linux and macOS, as well as VSS support for Windows, is planned for future releases.

Like the Office 365 / Google Workspace features, this is a proprietary module (source available).
Full disk backup requires administrative privileges to access the disk directly.
Full disk restore requires administrative privileges and requires that the disk is unmounted and not write-protected.

Remote File Locking

This release adds support for remote locking of files on supported storage providers (S3, Azure Blob Storage, Backblaze B2, iDrive e2, Google Cloud Storage).
Locking protects backup files from being deleted or overwritten during a configurable retention period.

To use the feature, set the advanced option --remote-file-lock-duration (e.g., 30D for 30 days).
Each backend supports governance (lock can be removed in admin console) or compliance (lock cannot be removed) modes.

Templating Engine for Reporting

Thanks to @AndyBodnar, it is now possible to use a Handlebars template to format the report output, which is especially useful for crafting custom email reports.

Synology Native Package

The Synology native package has been re-developed to support Synology DSM 7.2 and above.
The package installs as any other Synology package and uses integrated DSM authentication.

Soft Delete Support

A new option --soft-delete-prefix enables the soft-delete feature.
When enabled, files are renamed/moved instead of being deleted, allowing lifecycle management rules to handle actual deletion after a retention period.

Platform Updates

  • .NET 10: The application now runs on .NET 10 for improved performance
  • SQLite: Updated to use Microsoft.Data.Sqlite for better performance and async query support
  • VSS Provider: Default VSS provider on Windows is now Vanara (AlphaVSS is no longer maintained)

Database Encryption Changes

This release adds a “default secret provider” for the current OS:

  • Windows: Windows Credential Manager
  • macOS: Keychain
  • Linux: libSecret (Gnome Keyring), or commandline pass if available

If no secret provider is configured, and a default secret provider is available, the database will be encrypted with a random password stored in the default secret provider.
To opt-out, use --disable-db-encryption when starting the Server/TrayIcon.

If database encryption is already configured, or no default secret provider is available, nothing will change.

Simplified S3 Provider Configuration

The S3 provider configuration has been simplified by providing fewer options and only showing relevant endpoints.
A whitelist of public S3 providers is included, and hostnames are shown in backup reports if in the whitelist.

New Languages

Added support for Hungarian, Czech, and Polish languages. Thanks to all translators!

Quality of Life Improvements

  • The commandline-inside-the-UI feature now saves its state when navigating back
  • Added “Edit as text” option for source paths and filters
  • Linux AppImage builds are now available
  • Auto VSS on Windows when user has Administrator privileges (SeBackupPrivilege)
  • SSH-Agent support for SSH backend
  • Support for macOS Photos backup with --photos-handling option
  • New UI is more small-screen friendly

Notable Bugfixes

  • Fixed issue with invariant formatting causing crashes during backup
  • Fixed dry-run to strictly not touch data
  • Fixed --changed-files option to not introduce extra dangling file entries
  • Fixed purge operation size calculation and added --reduced-purge-statistics option
  • Fixed index file corruption issue where index files could become incomplete over time
  • Fixed restore flow to reduce temporary space usage (configurable with --restore-volume-cache-hint)

New fixes in 2.3.0.1

  • Add Hetzner and DO regions to S3 provider dropdowns
  • Fixed an issue with dollar signs in filenames confusing filters
  • Improved disk usage/handling for new restore flow
  • Fixed progress when using multiple destinations
  • Fixed an auto-refresh loop, thanks @adnit
  • Fixed an issue with saving settings from the UI in specific scenarios
  • Updated MailKit and MimeKit
  • Improved configuration speed when connecting to the console
  • Fixed an issue where empty files could cause restored databases to be marked as inconsistent
  • Added resilience for faulty translations (fixes an issue with pt-BR locale)
  • Check quotas when storing at multiple destinations
  • Updated Avalonia and DBus to latest versions

I’m not sure in which version it change, but Duplicati on github is no longer duplicati, but duplicati-agent and duplicati-gui.

That difference should be way better communicated and described on the github page.

Not wanting GUI as I run duplicati as a service, I installed agent only to find out it’s something else and want’s web authentication. No idea to what. It doesn’t tell anywhere. There was option to start it upon user login, but that’s not the service that I would like to start with the system.

Quite confusing and no mention in changelog about that.

Fortunatelly, it did not nuked my existing install of 2.2, so I was able to remove it and install GUI version. Which doesn’t talk about service either, just about user loging in, is not able to stop the running service (which fails install or requires reboot), does not offer to install/start it.

Scared me for a while…

That is described here:

Agent is something else, it is for installations where you only want to manage the instance via the Duplicati console.

The introduction of the Agent was quite a while back, so there is no longer a mention of it.

The Agent uses it’s own installation folder and data folder as the Agent install could live side-by-side with a regular desktop install on a shared machine.

My scenario would be “The Server” (running it as a service with local webserver), but that option is not available in releases on GitHub.

Only TrayIcon (which is called gui on release page) and Agent (there it’s the same).

So to install/upgrade “The Server” I’ve to guess which one (it is the GUI one - which is not intuitive if I want service - with one time setup of the service) and then manually stop the service before upgrade and possibly start it after install (I haven’t waited if the trayicon option starts it and just started it).

If we leave out the Agent which is different, the two other options are GUI and CLI.
The only difference between the two is that GUI includes the TrayIcon (a few kb) + has dependencies for that, which requires some kind of desktop environment.

If you have a desktop environment on the machine, you can use either package as they contain the things you want. If you are on a headless machine and do not want to pull in a full desktop as dependencies, use the CLI package.

The CLI package is only introduced to support installation on systems with no desktop environment.

seems a better resource for package picking, but I wish it was easier to find.
Somewhere really close to the large list of packages would ease that choice.

Possible easy solution is a README.txt or something that sorts high on lists.
Doing better might be possible, especially on Duplicati’s own download page:

This is for those who don’t like what main page offers which is named gui.
It’s the complete one, sort of a superset of cli (which actually has server).
Nothing forces a user to use an included component which they don’t want.
What’s confusing is the relation between “ways to run” and a package type.

In one sense, that one time setup is probably through the web GUI I’d guess.
That’s actually not the GUI the package has in mind, as a browser displays it.
Linux in “Package options” talks about cli case for server without a display.
There they could browse from display-equipped system to remote web server.
Windows users who run Duplicati as a service might still use a tray icon. See:
Combining Server and TrayIcon. Basically, there are lots of ways to assemble.
Easy way in is TrayIcon from duplicati.com Downloads. Others need plans.
Plans then need documentation read. I wish relevant docs were easier to spot.
I’ve been asking for the release notice to be nearer the download area as well.

Can we start localizing the new Duplicati UI now? I haven’t seen any progress updates regarding translation.:star_struck:

thanks for the suggestion.
I have now updated that page which was long overdue, and it now includes a link to the docs.

In case anyone wants to contribute to the page, I put the source here:

Yes, this is already active, the new UI is called ngclient:
https://app.transifex.com/duplicati/duplicati/ngclient/

2.3.0.0 GUI installed fine on my Windows 11 machine, but duplicati-2.3.0.1_stable_2026-04-24-win-x64-gui.msi fails with error 2503 and 2502. Am I the only one?

Hi @DupUser, welcome to the forum :waving_hand:

So far, you are the first to report this I think.

Could you try something like this on the commandline:

msiexec /i "C:\Duplicati.msi" /L*V "C:\install.log"

Then just click like you usually do, and after it fails, you should see the install.log file.
If you post this file somewhere and share a link (you can DM me) then I will take a look and see if I can guess the reason.

If you prefer to just move forward, it usually fixes things if you uninstall the previous version first, and then install the new version.

I just hit the problem described in issue # 6806 when running version 2.3.0.0.

Has this issue been fixed in 2.3.0.1? I don’t see an explicit reference to it in the release notes.

Thank you

Marc

Yes, PR 6809 is included in version 2.3.0.1