Release: 2.1.0.119 (Canary) 2025-05-29

Restore request never finishes (or so the UI reports, but it might not be a good report):

Technically it says “The operation Restore has completed…” but then it goes on to hang.

2025-05-29 13:35:57 -04 - [Information-Duplicati.Library.Main.Controller-CompletedOperation]: The operation Restore has completed
2025-05-29 13:35:58 -04 - [Error-Duplicati.Server.Program-UnobservedTaskException]: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "" is retired)
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The channel "" is retired)
 ---> CoCoL.RetiredException: The channel "" is retired
   at CoCoL.Channel`1.ReadAsync(ITwoPhaseOffer offer)
   --- End of inner exception stack trace ---
2025-05-29 13:37:00 -04 - [Warning-Duplicati.Library.Main.Controller-UnsupportedOption]: The supplied option ----compression-module is not supported and will be ignored
2025-05-29 13:37:00 -04 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation ListFilesets has started
2025-05-29 13:37:00 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Controller-RunListFilesets]: Starting - Running ListFilesets
2025-05-29 13:37:00 -04 - [Information-Duplicati.WebserverCore.Notifications.WebsocketAuthenticator-WebsocketAuthenticated]: WebSocket connection authenticated with token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXAiOiJBY2Nlc3NUb2tlbiIsInNpZCI6IndlYnNlcnZlciIsImZhbSI6IjM3RjJCRTZDNkJCNzNGRjciLCJuYmYiOjE3NDg1NDAyMjAsImV4cCI6MTc0ODU0MTEyMCwiaXNzIjoiaHR0cHM6Ly9kdXBsaWNhdGkiLCJhdWQiOiJodHRwczovL2R1cGxpY2F0aSJ9.lULOkLkszq3Z3tYlxeQRwpYJ-EKiSSaCpmmVWzrvqek
2025-05-29 13:37:00 -04 - [Verbose-Duplicati.Library.SQLiteHelper.SQLiteLoader-CustomSQLiteOption]: Setting custom SQLite option 'cache_size=-333824'.
2025-05-29 13:37:00 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteScalarInt64]: Starting - ExecuteScalarInt64: INSERT INTO "Operation" ("Description", "Timestamp") VALUES (@Description, @Timestamp); SELECT last_insert_rowid();
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteScalarInt64]: ExecuteScalarInt64: INSERT INTO "Operation" ("Description", "Timestamp") VALUES (@Description, @Timestamp); SELECT last_insert_rowid(); took 0:00:00:00.326
2025-05-29 13:37:01 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: Starting - ExecuteNonQuery: PRAGMA optimize
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: ExecuteNonQuery: PRAGMA optimize took 0:00:00:00.000
2025-05-29 13:37:01 -04 - [Verbose-Duplicati.Library.SQLiteHelper.SQLiteLoader-CustomSQLiteOption]: Setting custom SQLite option 'cache_size=-333824'.
2025-05-29 13:37:01 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteScalarInt64]: Starting - ExecuteScalarInt64: INSERT INTO "Operation" ("Description", "Timestamp") VALUES (@Description, @Timestamp); SELECT last_insert_rowid();
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteScalarInt64]: ExecuteScalarInt64: INSERT INTO "Operation" ("Description", "Timestamp") VALUES (@Description, @Timestamp); SELECT last_insert_rowid(); took 0:00:00:00.169
2025-05-29 13:37:01 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: Starting - ExecuteNonQuery: PRAGMA optimize
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: ExecuteNonQuery: PRAGMA optimize took 0:00:00:00.000
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Controller-RunListFilesets]: Running ListFilesets took 0:00:00:00.575
2025-05-29 13:37:01 -04 - [Verbose-Duplicati.Library.SQLiteHelper.SQLiteLoader-CustomSQLiteOption]: Setting custom SQLite option 'cache_size=-333824'.
2025-05-29 13:37:01 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteReader]: Starting - ExecuteReader: SELECT "ID", "Timestamp" FROM "Operation" ORDER BY "Timestamp" DESC LIMIT 1
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteReader]: ExecuteReader: SELECT "ID", "Timestamp" FROM "Operation" ORDER BY "Timestamp" DESC LIMIT 1 took 0:00:00:00.000
2025-05-29 13:37:01 -04 - [Profiling-Timer.Begin-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: Starting - ExecuteNonQuery: PRAGMA optimize
2025-05-29 13:37:01 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: ExecuteNonQuery: PRAGMA optimize took 0:00:00:00.000
2025-05-29 13:37:01 -04 - [Information-Duplicati.Library.Main.Controller-CompletedOperation]: The operation ListFilesets has completed

EDIT 1:

Duplicating the tab gets a slightly different log view, but it still thinks it’s stuck.
System info (have to use ngax) doesn’t look quite so stuck. Maybe GUI bug?

Server state properties
lastEventId : 52
lastDataUpdateId : 24
lastNotificationUpdateId : 12
estimatedPauseEnd : "0001-01-01T00:00:00.000Z"
activeTask :
programState : Running
lastErrorMessage :
connectionState : connected
connectionAttemptTimer : 0
failedConnectionAttempts : 0
failedAuthAttempts : 0
lastPgEvent :
updaterState : Waiting
updateDownloadLink :
updatedVersion :
updateDownloadProgress : 0
proposedSchedule : []
schedulerQueueIds : []
orderBy : id
pauseTimeRemain : 0

EDIT 2:

If I ignore Restore claim that it’s “Running” and go to the Home screen, things seem idle.
My file did restore (but not its timestamp, as reported on 2.1.0.118 announce). Checking equivalent profiling log for 2.1.0.118 didn’t see the UnobservedTaskException seen here.

EDIT 3:

I don’t know if this is consistent, but I used ngax “Edit as text” to correct four-dash option.
Now I’m not getting that exception, but I’m still getting a stuck “Running”. End is now like:

2025-05-29 14:14:08 -04 - [Profiling-Timer.Finished-Duplicati.Library.Main.Database.ExtensionMethods-ExecuteNonQuery]: ExecuteNonQuery: PRAGMA optimize took 0:00:00:00.000
2025-05-29 14:14:08 -04 - [Information-Duplicati.Library.Main.Controller-CompletedOperation]: The operation Restore has completed