#7330·duplicati

Failed to bind tcp port due to missing permissions

Author: svengoCreated Sep 16, 2026Updated Sep 16, 2026
  • I have searched open and closed issues for duplicates.
  • I have searched the forum for related topics.

Issue #6321 seems to describe the same problem but is marked as fixed.


Environment info

  • Duplicati version: 2.4.0.0_stable_2026-09-03
  • Operating system: Windows 11 Version 25H2 (Build 26200.9457)
  • Backend: OneDrive

Description

Duplicati.GUI.TrayIcon.exe and Duplicati.Server.exe crash on startup because access to the socket localhost:8200 was denied due to the socket's access permissions (sorry, the error messages are in German).

Duplicati.Library.Interface.UserInformationException: Server crashed on startup
 ---> System.Exception: Ein schwerwiegender Fehler trat in Duplicati auf: System.IO.IOException: Failed to bind to address http://localhost:8200.
 ---> System.AggregateException: One or more errors occurred. (Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.) (Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.)
 ---> System.Net.Sockets.SocketException (10013): Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.

Port 8200 is blocked by docker, wsl or Hyper-V:

PS C:\Users\sveng> netsh interface ipv4 show excludedportrange protocol=tcp

Portausschlussbereiche für das Protokoll "tcp"

Startport      Endport
----------    --------
      2869        2869
      5357        5357
      7966        8065
      8066        8165
      8166        8265
      8266        8365
     38868       38967
     38968       39067
     49690       49789
     49790       49889
     49890       49989
     50000       50059     *
     50060       50159

* - Verwaltete Portausschlüsse.

However, I can run Duplicati by setting the port to 8400 manually.

PS C:\Program Files\Duplicati 2> .\Duplicati.GUI.TrayIcon.exe --webservice-port=8400
PS C:\Program Files\Duplicati 2> Die Datenbank scheint verschlüsselt zu sein, aber es wurde kein Schlüssel angegeben. Das Öffnen der Datenbank wird scheitern. Benutzen Sie die Environment-Variable SETTINGS_ENCRYPTION_KEY um den Schlüssel einzugeben.
Server gestartet und hört auf localhost, Port 8400

Steps to reproduce

  1. Run Duplicati.GUI.TrayIcon.exe
  • Actual result: Crash on startup.
  • Expected result: Starts GUI.

Screenshots

Debug log

c:\Users\sveng\AppData\Local\Duplicati\Duplicati.GUI.TrayIcon-crashlog.txt

Duplicati.Library.Interface.UserInformationException: Server crashed on startup
 ---> System.Exception: Ein schwerwiegender Fehler trat in Duplicati auf: System.IO.IOException: Failed to bind to address http://localhost:8200.
 ---> System.AggregateException: One or more errors occurred. (Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.) (Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.)
 ---> System.Net.Sockets.SocketException (10013): Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (10013): Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)<---

   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.EndpointsStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token)
   at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Duplicati.Server.Program.<>c__DisplayClass45_0.<<StartWebServerAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Server.WebServerLoader.TryRunServerAsync[TServer](IReadOnlyDictionary`2 options, Connection connection, Func`2 createServer)
   at Duplicati.Server.Program.StartWebServerAsync(IReadOnlyDictionary`2 options, Connection connection, ILogWriteHandler logWriteHandler, IApplicationSettings applicationSettings)
   at Duplicati.Server.Program.Main(IApplicationSettings applicationSettings, String[] _args)
 ---> System.IO.IOException: Failed to bind to address http://localhost:8200.
 ---> System.AggregateException: One or more errors occurred. (Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.) (Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.)
 ---> System.Net.Sockets.SocketException (10013): Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (10013): Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)<---

   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.EndpointsStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token)
   at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Duplicati.Server.Program.<>c__DisplayClass45_0.<<StartWebServerAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Duplicati.Server.WebServerLoader.TryRunServerAsync[TServer](IReadOnlyDictionary`2 options, Connection connection, Func`2 createServer)
   at Duplicati.Server.Program.StartWebServerAsync(IReadOnlyDictionary`2 options, Connection connection, ILogWriteHandler logWriteHandler, IApplicationSettings applicationSettings)
   at Duplicati.Server.Program.Main(IApplicationSettings applicationSettings, String[] _args)
   --- End of inner exception stack trace ---
   at Duplicati.Server.Program.Main(IApplicationSettings applicationSettings, String[] _args)
   at Duplicati.GUI.TrayIcon.HostedInstanceKeeper.<>c__DisplayClass5_0.<.ctor>b__0(Object _)
   --- End of inner exception stack trace ---
   at Duplicati.GUI.TrayIcon.HostedInstanceKeeper..ctor(IApplicationSettings applicationSettings, String[] args)
   at Duplicati.GUI.TrayIcon.Program.RunMain(String[] _args)
   at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)