After last update duplicati doesn't work anymore

Hey,

I am running duplicati on Arch Linux. The current installed version from the repo is:

aur/duplicati-latest 2.0.4.32-1 [installed]

Usually I start duplicati via systemd service, here is my duplicati service:

[Unit]
Description=Duplicati

[Service]
ExecStartPre=/usr/bin/sleep 5
ExecStart=/usr/bin/mono /opt/duplicati-latest/Duplicati.GUI.TrayIcon.exe --webservice-port=8200
Restart=on-abort
Environment=AUTOUPDATER_Duplicati_SKIP_UPDATE=1

[Install]
WantedBy=default.target

And I run it as a user service:

systemctl start duplicati.service --user

I am getting the following error from journalctl log:

Unexpected error: System.ArgumentNullException: Value cannot be null.
Parameter name: s
  at System.Convert.FromBase64String (System.String s) [0x00003] in <4f52a2659e1844fea7ab38854dcbcf68>:0 
  at Duplicati.GUI.TrayIcon.HttpServerConnection.GetAuthToken () [0x00094] in <4e95f350085143d1b0f674e30796dbcc>:0 
  at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequest[T] (System.String method,   System.String urlfragment, System.Collections.Generic.Dictionary`2[TKey,TValue] queryparams) [0x001ae] in <4e95f350085143d1b0f674e30796dbcc>:0 
  at Duplicati.GUI.TrayIcon.HttpServerConnection.UpdateStatus () [0x00001] in <4e95f350085143d1b0f674e30796dbcc>:0 
  at Duplicati.GUI.TrayIcon.HttpServerConnection..ctor (System.Uri server, System.String password, System.Boolean saltedpassword, Duplicati.GUI.TrayIcon.Program+PasswordSource passwordSource, System.Boolean disableTrayIconLogin, System.Collections.Generic.Dictionary`2[TKey,TValue] options) [0x000cb] in <4e95f350085143d1b0f674e30796dbcc>:0 
  at Duplicati.GUI.TrayIcon.Program.StartTray (System.String[] _args, System.Collections.Generic.Dictionary`2[TKey,TValue] options, System.String toolkit, Duplicati.GUI.TrayIcon.HostedInstanceKeeper hosted, System.String password, System.Boolean saltedpassword) [0x00024] in <4e95f350085143d1b0f674e30796dbcc>:0 

So the tray icon doesn’t show up and I also cannot access the webpage through
http://localhost:8200/ngax/index.html

How can I get duplicati back running?

Thanks in advance

I got simillar issue in windows 10 since 2.0.4.32 (and 2.0.4.33 didn’t solved it) when app doesn’t start at all and in my case doesn’t even leave any crashlog.

What’s worse, downgrading to 2.0.4.30 which worked (by renaming 2.0.4.33 update folder), doesn’t help as the database get’s upgraded to version 10, which this one is refuses to use. So not only web interface is dead, but backups themselves…

The stack trace indicates that it has something to do with the password being empty.

The code is here:

There are a two calls to FromBase64String in that method, and they both relate to the data returned from GetSaltAndNonce().

I cannot think of any changes since 2.0.4.30 that would cause this.

What happens if you run the server manually, like:

/usr/bin/mono /opt/duplicati-latest/Duplicati.Server.exe --webservice-port=8200

And try to open http://localhost:8200 in a browser?

Already tried running like you mentioned, and the error message is the same.
I am not sure from where it tries to retrieve the password.
I also tried to invoke passing the --webservice-password=“PASS” and got the same error.

Windows 10 v1903: Tray app does not launch from Start Menu link after update to v2.0.4.32-2.0.4.32_canary_2019-10-24 #3968 are some other reports where the particulars are vague. There’s a rather long list of things to look at to try to find out what’s going on and why only some see it.

Next to your databases should be a backup of the database, with a timestamp and (more recently) the randomly-generated name that it goes with. These are taken when a DB is upgraded, to allow reverts. There will obviously be a greater and greater mismatch between DB and destination, so revert quickly.

I would love to provide more logs, but there seems none to be generated. When I downgrade to v.28 and replace back the databases, application launches correctly and when commanded to backup, starts to verify only to die moment later when trying to repair DB. Note that only process locking that DB is duplicati process itself (as reported by process explorer, when I queried DB name)…

Stored log says:

System.IO.IOException: The process cannot access the file because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalMove(String sourceFileName, String destFileName, Boolean checkHost)
at Duplicati.Library.Main.Operation.RepairHandler.Run(IFilter filter)
at Duplicati.Library.Main.Operation.BackupHandler.PreBackupVerify(BackendManager backend, String protectedfile)
at Duplicati.Library.Main.Operation.BackupHandler.d__19.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at CoCoL.ChannelExtensions.WaitForTaskOrThrow(Task task)
at Duplicati.Library.Main.Controller.<>c__DisplayClass13_0.b__0(BackupResults result)
at Duplicati.Library.Main.Controller.RunAction[T](T result, String& paths, IFilter& filter, Action`1 method)
at Duplicati.Library.Main.Controller.Backup(String inputsources, IFilter filter)
at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)

Live Verbose log says:


Backup’s logs says nothing about current backup attempt - contains only the last sucessfull.

My testing found that GUI password is key. Removal is a workaround. 2.0.4.31 works. 2.0.4.32 exits early. At a network level, 2.0.4.31 submits password, while 2.0.4.32 ends earlier after getting nonce.
Mark fields that don’t need to be reassigned as readonly. changed GetSaltAndNonce in 2.0.4.32 but whether or not some tool might have declared change safe when is wasn’t totally safe is not known.

Marking the fields of the SaltAndNonce class readonly is the problem. This prevented startup when a password was set for the UI. Unfortunately, the automatic refactoring could not detect that these fields were potentially set by a deserializer (I think it should have been able to detect this since SaltAndNonce is explicitly used as the generic type parameter in the call to Serializer.Deserialize, but apparently it could not).

Pull request to revert this is here:

@kenkendk, sorry for the trouble, but this might call for another canary release to get this fix out?

Good catch!

Agreed! I can try my new macOS notarization+staple code then :slight_smile:

Release: 2.0.4.34 (canary) 2019-11-05 is available to try, for those who were seeing the bug below

  • Fixed failure on password-protected servers introduced in 2.0.4.32, thanks @warwickmm

Working here for me.
Just ran an incremental too.
I had a password set and tried the icon with and without automatic logon, both work.
Thanks!

After updating to v34 application starts and works, but I wasn’t able to continue in using that backups. Fortunately this machine was the only one updated and contains below 1TB of data where I usually do not need history, so it should be ok to just redo them.

What ceased to work however is 1Password password manager I use, so I can use really strong passwords. It no longer autofills password, I have to open main app, find duplicati password setting and copy it using clipboard. Probably new method is too safe :slight_smile: