Can't make Tray Icon run on Mac OS Sierra

Mac 10.12.6, Duplicati verson 2.0.4.23_beta_2019-07-14

Mono version returns
Carls-MacBook-Pro-2:MacOS carl$ mono --version
Mono JIT compiler version 6.4.0.198 (tarball Wed Sep 25 00:25:15 BST 2019)
Copyright © 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:
SIGSEGV: altstack
Notification: kqueue
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: supported, not enabled.
Suspend: hybrid
GC: sgen (concurrent by default)

Carls-MacBook-Pro-2:MacOS carl$ which mono
/usr/local/bin/mono

Duplicati server will start with:
Carls-MacBook-Pro-2:MacOS carl$ /Applications/Duplicati.app/Contents/MacOS/duplicati-server &

Weirdly, the server will start without backgrounding the process, but then it will quit if the script’s process is killed. If I start it with “&” it runs even if I explicitly kill the script’s process.

From the web interface, I can build a backup, run it and it connects to Backblaze B2 and writes the backup successfully. Everything seems to run fine, just like it does on my Linux version.

For the life of me, I can’t get the tray icon to run. Which, considering there is apparently no way to stop the server, is kind of an issue.

Attempting to start the Tray Icon appears to run, but nothing happens:
Carls-MacBook-Pro-2:MacOS carl$ mono Duplicati\Duplicati.GUI.TrayIcon.exe" --no-hosted-server

And finally, simply trying to start Duplicati from its normal start script does nothing if I double-click in the GUI and returns this rather lengthy error (below) if I do it from the command line.

Does anybody know what’s going on?

-Carl

Carls-MacBook-Pro-2:MacOS carl$ /Applications/Duplicati.app/Contents/MacOS/duplicati
Request error: System.Net.WebException: Error: NameResolutionFailure
at System.Net.WebConnection.Connect (System.Net.WebOperation operation, System.Threading.CancellationToken cancellationToken) [0x00044] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebConnection.InitConnection (System.Net.WebOperation operation, System.Threading.CancellationToken cancellationToken) [0x000cc] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebOperation.Run () [0x0009a] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebCompletionSource1[T].WaitForCompletion () [0x00094] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0 at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0 at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <2b2660cd66234060ac508681b40577e7>:0 at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <2b2660cd66234060ac508681b40577e7>:0 at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequestInternal[T] (System.String method, System.String endpoint, System.Collections.Generic.Dictionary2[TKey,TValue] queryparams) [0x001c5] in <6464f4e1314f4170b4321fea9336fe01>:0
at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequest[T] (System.String method, System.String urlfragment, System.Collections.Generic.Dictionary2[TKey,TValue] queryparams) [0x00035] in <6464f4e1314f4170b4321fea9336fe01>:0 at Duplicati.GUI.TrayIcon.HttpServerConnection.UpdateStatus () [0x00001] in <6464f4e1314f4170b4321fea9336fe01>: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.Dictionary2[TKey,TValue] options) [0x000cb] in <6464f4e1314f4170b4321fea9336fe01>:0
at Duplicati.GUI.TrayIcon.Program.RealMain (System.String _args) [0x0049f] in <6464f4e1314f4170b4321fea9336fe01>:0
Request error: System.Net.WebException: Error: NameResolutionFailure
at System.Net.WebConnection.Connect (System.Net.WebOperation operation, System.Threading.CancellationToken cancellationToken) [0x00044] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebConnection.InitConnection (System.Net.WebOperation operation, System.Threading.CancellationToken cancellationToken) [0x000cc] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebOperation.Run () [0x0009a] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebCompletionSource1[T].WaitForCompletion () [0x00094] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0 at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0 at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <2b2660cd66234060ac508681b40577e7>:0 at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <2b2660cd66234060ac508681b40577e7>:0 at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequestInternal[T] (System.String method, System.String endpoint, System.Collections.Generic.Dictionary2[TKey,TValue] queryparams) [0x001c5] in <6464f4e1314f4170b4321fea9336fe01>:0
at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequest[T] (System.String method, System.String urlfragment, System.Collections.Generic.Dictionary2[TKey,TValue] queryparams) [0x00035] in <6464f4e1314f4170b4321fea9336fe01>:0 at Duplicati.GUI.TrayIcon.HttpServerConnection.UpdateStatus () [0x00001] in <6464f4e1314f4170b4321fea9336fe01>: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.Dictionary2[TKey,TValue] options) [0x000cb] in <6464f4e1314f4170b4321fea9336fe01>:0
at Duplicati.GUI.TrayIcon.Program.RealMain (System.String _args) [0x0049f] in <6464f4e1314f4170b4321fea9336fe01>:0
Request error: System.Net.WebException: Error: NameResolutionFailure
at System.Net.WebConnection.Connect (System.Net.WebOperation operation, System.Threading.CancellationToken cancellationToken) [0x00044] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebConnection.InitConnection (System.Net.WebOperation operation, System.Threading.CancellationToken cancellationToken) [0x000cc] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebOperation.Run () [0x0009a] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0
at System.Net.WebCompletionSource1[T].WaitForCompletion () [0x00094] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0 at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <6fd9adf8d7d5495e81d1d3cd5da57cb6>:0 at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <2b2660cd66234060ac508681b40577e7>:0 at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <2b2660cd66234060ac508681b40577e7>:0 at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequestInternal[T] (System.String method, System.String endpoint, System.Collections.Generic.Dictionary2[TKey,TValue] queryparams) [0x001c5] in <6464f4e1314f4170b4321fea9336fe01>:0
at Duplicati.GUI.TrayIcon.HttpServerConnection.PerformRequest[T] (System.String method, System.String urlfragment, System.Collections.Generic.Dictionary2[TKey,TValue] queryparams) [0x00035] in <6464f4e1314f4170b4321fea9336fe01>:0 at Duplicati.GUI.TrayIcon.HttpServerConnection.UpdateStatus () [0x00001] in <6464f4e1314f4170b4321fea9336fe01>: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.Dictionary2[TKey,TValue] options) [0x000cb] in <6464f4e1314f4170b4321fea9336fe01>:0
at Duplicati.GUI.TrayIcon.Program.RealMain (System.String _args) [0x0049f] in <6464f4e1314f4170b4321fea9336fe01>:0
Carls-MacBook-Pro-2:MacOS carl$

Bump. Anybody out there know how to deal with this issue?

Sorry you haven’t gotten a response yet. Hopefully someone with more Mac experience will see this thread soon!

Welcome to the forum!

Not really, and I don’t have a Mac either. How about we chase the NameResolutionFailure to see why the name (probably localhost) is having trouble? Or alternatively try bypassing it with an IP address:

Duplicati.GUI.TrayIcon.exe

--hosturl
Supply the url that the TrayIcon will connect to and show status for.

The Linux script called duplicati looks like it passes arguments through, and if Mac is the same, try:

duplicati --no-hosted-server --hosturl=http://127.0.0.1:8200

If that fixes the NameResolutionFailure, then try to find out why your Mac’s localhost isn’t resolving.

Test your DNS server using Network Utility on Mac gives some ideas, but you might also have a static lookup file that supplements DNS. On Windows, they have that and also some magic in the lookups…
One of my systems likes to find the IPv6 version of localhost (which is ::1) but Duplicati isn’t listening.
Duplicati.Server.exe (possibly run by the duplicati-server script on your system) lets you control listens:

--webservice-interface
The interface the webserver listens on. The special values * and any means any interface. The special value loopback means the loopback adapter.

I’m assuming this is all on one machine. Remote between machines gets into some additional settings.

For killing the server, just notice that it’s two processes (just like on Linux). On Windows, Control-C only kills the parent whose job is to start any relevant updates when it starts the child which does all the rest. IIRC, Linux seemed to take both processes down on Control-C but there are many other ways to do kill.