Release: 2.3.0.102 (Canary) 2026-05-09

2.3.0.102_canary_2026-05-09

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

Changes in this version

Drime Cloud Backend

Added support for Drime Cloud as a new storage backend.

Slow Query Monitor

Added a slow query monitor to help diagnose performance issues by tracking long-running database queries.

Synthetic Filelist Optimization

Optimized the creation of synthetic filelists, improving performance for large datasets.

Empty Index File Handling

Improved handling of empty index files to prevent errors during database recreate and restore operations.

SQL Logging Improvements

Improved SQL logging across the database layer for better diagnostics and debugging.

Detailed Changes

  • Added Drime Cloud backend support
  • Improved websocket handling for remote management
  • Added slow query monitor for database performance diagnostics
  • Optimized synthetic filelist creation
  • Improved handling of empty index files
  • Persisted used compression module in volume reader
  • Improved SQL logging across database operations
  • Updated Office 365 strings to Microsoft 365
  • Added package to Docker image
  • Improved immediate usage reporter updates

ngclient Updates

  • Show “last backup” with the same date in both detail and grid view
  • Show actual scheduled time for backups
  • Fixed an issue with using stored destinations which would fail to create folders
  • Fixed an issue with importing backups where the schedule edits would be ignored
  • Fixed an issue where the date for a scheduled backup would be off-by-one when edited
  • Optimized query flow to use websockets instead of polling/fetching

Einer muss ja den Anfang machen 
 .

Ich wollte es wissen und habe gestern sofort ein Upgrade von 2.3.0.101 auf 2.3.0.102 durchgefĂŒhrt.
Der Kurztest mit den danach erfolgenden 8 vollautomatischen Sicherungen verlief störungsfrei, inclusive von zwei ZurĂŒcksicherungen und bitweisem Vergleich mit dem Original.
Ich bin also sehr zufrieden!
Vielen Dank an @kenkendk!

GlĂŒck auf!
vom Wismutkumpel

Getting large Alert volume now, e.g. job edit Source screen gets 12 looking like:

Originally seen on a different job where it seemed like any file got HTTP asking:

Profiling log shows the likely info of that particular 500 Internal Server Error:

2026-05-11 15:55:57 -04 - [Error-Duplicati.WebserverCore.DuplicatiWebserver-UnhandledException]: Unhandled exception in webserver request to /api/v1/filesystem
System.Exception: Failed to process the path: The parameter is incorrect. : '\\?\C:\backup source\C.txt'.
 ---> System.IO.IOException: The parameter is incorrect. : '\\?\C:\backup source\C.txt'.
   at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
   at System.Linq.Enumerable.IEnumerableSelectIterator`2.ToArray()
   at System.Linq.Enumerable.OrderedIterator`2.MoveNext()
   at Duplicati.WebserverCore.Endpoints.V1.Filesystem.ListFolderAsNodes(String entrypath, Boolean skipFiles, Boolean showHidden)+MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Duplicati.WebserverCore.Endpoints.V1.Filesystem.Execute(String path, Boolean onlyFolders, Boolean showHidden)
   --- End of inner exception stack trace ---
   at Duplicati.WebserverCore.Endpoints.V1.Filesystem.Execute(String path, Boolean onlyFolders, Boolean showHidden)
   at lambda_method241(Closure, EndpointFilterInvocationContext)
   at Duplicati.WebserverCore.Middlewares.HostnameFilter.InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
   at Duplicati.WebserverCore.Middlewares.LanguageFilter.InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
   at Microsoft.AspNetCore.Http.RequestDelegateFactory.<ExecuteValueTaskOfObject>g__ExecuteAwaited|130_0(ValueTask`1 valueTask, HttpContext httpContext, JsonTypeInfo`1 jsonTypeInfo)
   at Microsoft.AspNetCore.Http.RequestDelegateFactory.<>c__DisplayClass102_2.<<HandleRequestBodyAndCompileRequestDelegateForJson>b__2>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.WebserverCore.Middlewares.WebsocketExtensions.<>c__DisplayClass0_0.<<UseNotifications>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)

2.3.0.101 had a different 500 problem (which I think was extra slash on folders).

I discovered and fixed that yesterday. As you can see it attempts to expand files, which obviously fails. It was caused by the logic to fix the extra slash.

I made an update, the repair install, problem is now "Could not load file or assembly ‘Duplicati.Library.RemoteSynchronization, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null’. Das System kann die angegebene Datei nicht finden."

EDIT: Works now. Root cause was a failed installation because it wasn’t able to kill the TrayIcon process.