Duplicati not automatically restarting after update on MacOS

when updating my mac mini duplicati does not restart automatically after update.
has happened on previous versions as well.

1 Like

I believe there are a few posts about this. In my case it always does restart (running as daemon, no password) but I think others (@Pectojin?) have had your non-start experience.

So there’s likely an environment (OS, how many old versions are in the updates folder, etc.), configuration, or process (how the update was “installed”, what page you were on when it should have restarted, etc.).

The trick is figuring out the specific cause.

I’m moving this to it’s open Topic since it’s not 2.0.3.10 specific and just in case we want to try and debug it further.

1 Like

Yup, mine seems to never work either.

I’ll try to do it with the new release to see if I can get any further info

I started the tray icon from the terminal to get the output of any update related errors.

The update was downloaded successfully but when I pressed activate it ended my process and did not start a new one. When I manually started Duplicati again it was updated, however, so it sorta just seems like it fails to properly re-launch.

I’ve got the console output below, and there are definitely some errors. It looks like it could be a problem with Python dependencies? But there are also some errors about Mono and sqlite so not entirely sure what to make of this…

mono "/Applications/Duplicati.app/Contents/Resources/Duplicati.GUI.TrayIcon.exe"
Unexpected message: None
Unexpected message: Exception in thread Thread-1:
Unexpected message: Traceback (most recent call last):
Unexpected message: File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
Unexpected message: self.run()
Unexpected message: File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
Unexpected message: self.__target(*self.__args, **self.__kwargs)
Unexpected message: File "/Applications/Duplicati.app/Contents/Resources/OSXTrayHost/osx-trayicon-rumps.py", line 176, in get_input
Unexpected message: rumps.notification(cfg["Title"], subtitle, cfg["Message"], sound=playSound, image=image)
Unexpected message: File "/Applications/Duplicati.app/Contents/Resources/OSXTrayHost/rumps.py", line 122, in notification
Unexpected message: notification.setUserInfo_({} if data is None else data)
Unexpected message: error: NSInvalidUnarchiveOperationException - Class 'OC_PythonDictionary' has a superclass that supports secure coding, but 'OC_PythonDictionary' overrides -initWithCoder: and does not override +supportsSecureCoding. The class must implement +supportsSecureCoding and return YES to verify that its implementation of -initWithCoder: is secure coding compliant.
Unexpected message: None
System.Threading.ThreadAbortException
  at (wrapper managed-to-native) System.Threading.WaitHandle.Wait_internal(intptr*,int,bool,int)
  at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.UInt32 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00019] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.Int64 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00014] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at System.Threading.WaitHandle.WaitOne (System.Int64 timeout, System.Boolean exitContext) [0x00000] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at System.Threading.WaitHandle.WaitOne (System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x00019] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at Duplicati.Server.EventPollNotify.Wait (System.Int64 eventId, System.Int32 milliseconds) [0x00042] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTMethods.RequestInfo.LongPollCheck (Duplicati.Server.EventPollNotify poller, System.Int64& id, System.Boolean& isError) [0x00119] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTMethods.ServerState.GET (System.String key, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x0000c] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTHandler.DoProcess (Duplicati.Server.WebServer.RESTMethods.RequestInfo info, System.String method, System.String module, System.String key) [0x00140] in <8486dd191d20467cbf8d627f56ca2e90>:0
System.Threading.ThreadAbortException
  at (wrapper managed-to-native) System.Threading.WaitHandle.Wait_internal(intptr*,int,bool,int)
  at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.UInt32 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00019] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.Int64 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00014] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at System.Threading.WaitHandle.WaitOne (System.Int64 timeout, System.Boolean exitContext) [0x00000] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at System.Threading.WaitHandle.WaitOne (System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x00019] in <bb7b695b8c6246b3ac1646577aea7650>:0
  at Duplicati.Server.EventPollNotify.Wait (System.Int64 eventId, System.Int32 milliseconds) [0x00042] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTMethods.RequestInfo.LongPollCheck (Duplicati.Server.EventPollNotify poller, System.Int64& id, System.Boolean& isError) [0x00119] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTMethods.ServerState.GET (System.String key, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x0000c] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTHandler.DoProcess (Duplicati.Server.WebServer.RESTMethods.RequestInfo info, System.String method, System.String module, System.String key) [0x00140] in <8486dd191d20467cbf8d627f56ca2e90>:0
Mono.Data.Sqlite.SqliteException (0x80004005): SQLite error
cannot rollback - no transaction is active
  at Mono.Data.Sqlite.SQLite3.Reset (Mono.Data.Sqlite.SqliteStatement stmt) [0x00084] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SQLite3.Step (Mono.Data.Sqlite.SqliteStatement stmt) [0x0003d] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SqliteDataReader.NextResult () [0x00104] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SqliteDataReader..ctor (Mono.Data.Sqlite.SqliteCommand cmd, System.Data.CommandBehavior behave) [0x0004e] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at (wrapper remoting-invoke-with-check) Mono.Data.Sqlite.SqliteDataReader..ctor(Mono.Data.Sqlite.SqliteCommand,System.Data.CommandBehavior)
  at Mono.Data.Sqlite.SqliteCommand.ExecuteReader (System.Data.CommandBehavior behavior) [0x00006] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SqliteCommand.ExecuteNonQuery () [0x00000] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SqliteTransaction.IssueRollback (Mono.Data.Sqlite.SqliteConnection cnn) [0x00012] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SqliteTransaction.Rollback () [0x00008] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at Mono.Data.Sqlite.SqliteTransaction.Dispose (System.Boolean disposing) [0x00018] in <014c9db260de4b1f923d868e07ec7dcd>:0
  at System.Data.Common.DbTransaction.Dispose () [0x00000] in <eb6615fb53cd4c1f8d0a1f8098cf7ceb>:0
  at Duplicati.Server.Database.Connection.SetSettings (System.Collections.Generic.IEnumerable`1[T] values, System.Int64 id, System.Data.IDbTransaction transaction) [0x00070] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.Database.ServerSettings.SaveSettings () [0x00030] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.Database.ServerSettings.set_UnackedError (System.Boolean value) [0x00039] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.Database.Connection.DismissNotification (System.Int64 id) [0x00084] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTMethods.Notification.DELETE (System.String key, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x00058] in <8486dd191d20467cbf8d627f56ca2e90>:0
  at Duplicati.Server.WebServer.RESTHandler.DoProcess (Duplicati.Server.WebServer.RESTMethods.RequestInfo info, System.String method, System.String module, System.String key) [0x00292] in <8486dd191d20467cbf8d627f56ca2e90>:0

I’ll test with your process on Tuesday. Did you activate from the home page message or go somewhere else like About?

Oh, and was it already downloaded or not?

I had to go to the about page to check for updates. Then I clicked the notification to begin the download and then again clicked the notification to activate.

I did the same same as you:

  • started with 2.0.3.9
  • went to about page and clicked “Check for updates”
  • clicked the “Install” button in the notification window (download started)
  • clicked the “Activate” button in the notification window (countdown to reload started)

Duplicati did NOT restart.

This isn’t how I recall previous updates working, but then I don’t normally use the process above. If I had the time (and knew where it was stored) I’d un-update and try again with a different path, but I don’t think that’s likely to happen any time soon.

I use the above process and it has never worked for me and I’ve done a few updates.

This is the first time I can recall it NOT working for me, but I usually do something like start the download, go to the into page for the update, and read that until the download is done and THEN do the install.

Of course I could be misremembering…