What happens if you press the "Select a different Roon Server" button?
· I don't see Roon Server.
Please try to restart your Roon Server by closing the Roon app in the taskbar or rebooting your Roon Server machine.
· No, the issue remains the same
Please try to restart your network setup by unplugging, waiting 30 seconds and then replugging in your networking gear.
· No, the issue remains the same
Please select how you've connected your Roon Server to the internet
· Roon Server is connected by *WiFi*
Have you checked your firewall settings to ensure that Roon is allowed through?
· Roon still won't connect even after checking this aspect
Have you verified that Roon Server is on the same subnet as your Remotes?
· My Remotes and Server are on the same subnet and I still can't connect
Sometimes the issues can be resolved with a reinstall of your Roon Remote app. Let's try to perform a reinstall and see if it helps.
· I've reinstalled the Roon Remote but it did not help
What is the operating system of your Roon Server host machine?
· *Linux Server* (Ubuntu, Fedora, ArcLinux...)
Select any of the following components that are present in your local network setup
· *VPN* installed on RoonServer or Roon Remotes
You mentioned a VPN. Have you tried disabling it?
· I tried disabling my VPN/proxy connection and Roon still won't connect
Describe the issue
Roon server intermittently throws SocketException and cannot recover
Describe your network setup
I have a firewalla gold router connected to an alta labs s8-poe (8 port switch), connected to an alta AP6 pro. Roonserver runs on my Fedora 40 Framework 16 laptop, and is sometimes hardwired to the network via a CalDigit TS4 dock (connected to the firewalla, not the switch) and sometimes connected to my wireless AP. My laptop runs a VPN for work which I intermittently connect and disconnect to throughout the day.
Ughhhh I did not enjoy the form flow to create this post. I didn’t understand I wouldn’t get an opportunity to elaborate further so I’ll do that in this reply.
So what happens is that sometimes, throughout the day I intermittently get the “Waiting for Roon Server” dialog on my phone. Sometimes, it is after I’ve just disconnected from my VPN and sometimes it is not so I can’t definitively say that’s the cause. Usually, my phone can connect to roon server just fine. Maybe there’s a small hiccup where I see the dialog, but most of the time I just wait a few seconds and it reconnects.
If the phone client gets stuck waiting for roonserver, I will go to check the logs and I see this exact same stack trace from my systemd unit:
❯ systemctl status roonserver.service -l
● roonserver.service - RoonServer
Loaded: loaded (/etc/systemd/system/roonserver.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Tue 2024-10-29 09:05:35 PDT; 1 day 5h ago
Main PID: 1767 (start.sh)
Tasks: 114 (limit: 37457)
Memory: 3.6G (peak: 3.6G swap: 2.8M swap peak: 2.8M)
CPU: 24min 18.675s
CGroup: /system.slice/roonserver.service
├─1767 /bin/bash /opt/RoonServer/start.sh
├─1775 /opt/RoonServer/RoonDotnet/RoonServer RoonServer.dll
├─1896 /opt/RoonServer/RoonDotnet/RoonAppliance RoonAppliance.dll -watchdogport=33501
├─1898 /opt/RoonServer/Server/processreaper 1896
└─4871 /opt/RoonServer/RoonDotnet/RAATServer RAATServer.dll
Oct 30 14:42:07 myhost start.sh[1896]: System.Net.Sockets.SocketException (104): Connection reset by peer
Oct 30 14:42:07 myhost start.sh[1896]: at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
Oct 30 14:42:07 myhost start.sh[1896]: at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)
Oct 30 14:42:07 myhost start.sh[1896]: at System.Threading.Tasks.ValueTask`1.ValueTaskSourceAsTask.<>c.<.cctor>b__4_0(Object state)
Oct 30 14:42:07 myhost start.sh[1896]: --- End of stack trace from previous location ---
Oct 30 14:42:07 myhost start.sh[1896]: at System.Threading.Tasks.TaskToApm.End[TResult](IAsyncResult asyncResult)
Oct 30 14:42:07 myhost start.sh[1896]: at Sooloos.RnetJsonClient.<>c__DisplayClass65_0.<_BeginRead>b__0(IAsyncResult ar)
Once run systemctl restart roonserver.service I can reconnect without issue.
Edit: sitting on my couch sending audio from roonserver on my wi-fi connected laptop via Chromecast to my soundbar, with no VPN involved. I selected a new album to play and pressed the play button. As soon as I did I got the “Uh oh, something’s not right” dialog on the Roon Remote on my phone. However, the track I selected did actually start playing.
I’ve checked the journalctl log and I have exactly the same stack trace error about the connection being reset. In the meantime Roon keeps playing the album without missing a beat, I just can’t change anything else until I restart the server. If I force close the Roon Remote app on the phone, when I reopen it, I again get the “Waiting for your Roon Server” message indefinitely.
For context, RoonServer is designed for simple, single-VLAN networks and can struggle in rapidly changing network conditions such as those you’ve described. RoonServer will check the throughput, etc. of each available network interface and choose whichever offers the best connection at that time. Custom assignment of a network interface within RoonServer is a common feature request, so I recommend you make your voice heard to the Product team in the Feedback section, which will have an amplified impact compared to a post here in Support.
Here’s what we can see in logs:
Sometimes, on startup, RoonServer can only see the loopback interface. The VPN and the WiFi/ethernet interfaces are both inactive, and all requests are failing for a few seconds.
Other times, RoonServer switches connection between a 10.- range VLAN and a 192.- range VLAN, causing all extant RAAT and Controller (remote) connections to drop until restart.
There are network reachability errors with upstream services during periods when RoonServer is connecting without issue to the LAN. As soon as network reachability changes, these services recover.
Some suggestions:
If possible, restart RoonServer as a background process whenever you actively switch network interfaces.
Enable multicast forwarding and IGMP snooping in any managed network settings for due diligence
Some network connections are not allowing full access to upstream and cloud services; Roon can’t access services required for background functioning during these times. How restrictive is the remote access service you use for work - is it monitoring application-level traffic?
In general, the stateful traffic management in this network topology is not recommended for Roon environments and can be enormously challenging to troubleshoot remotely. We’ll do our best to assist.