Roon Live Radio playback stops intermittently on Mac mini setup (ref#S664N6) [Ticket In]

I’ve investigated and unfortunately it seems that BT does not allow you to change the DNS Server on any of its domestic hubs.

From the reading I’ve done, the main reason for changing from your ISP’s DNS to something like Cloudfare is speed of response. 17ms vs maybe 150ms. But this would not explain the dropout reasons I’ve seen in some of the RoonServer logs. These say things like;
“Too many dropouts (>3s dropped out in the last 30s). Killing stream”
“Warn: [1] frame took 4325.84ms! 17.93ms preframe, 0.00ms safe queue, 0.00ms timers, 0.00ms frame calls, 1.64ms update, 4325.84ms render”.

The failure this afternoon seemed to be associated with this section from the RoonServer log;

01/14 16:37:56 Trace: [Broker:Transport] [Kitchen] [LowQuality, 24/48 MP3 => 24/48] [PLAYING @ 5:40] Wake Me Up When September Ends - Green Day
01/14 16:37:59 Trace: [Worker (3)] [Kitchen] [zoneplayer/raat] sync Built-in Output: realtime=5074872501617 rtt=0us offset=-9982858498us delta=-450us drift=-332us in 342.815s (-0.971ppm, -3.495ms/hr)
01/14 16:38:01 Trace: [Broker:Transport] [Kitchen] [LowQuality, 24/48 MP3 => 24/48] [PLAYING @ 5:45] Wake Me Up When September Ends - Green Day
01/14 16:38:06 Trace: [Broker:Transport] [Kitchen] [LowQuality, 24/48 MP3 => 24/48] [PLAYING @ 5:50] Wake Me Up When September Ends - Green Day
01/14 16:38:10 Trace: [Worker (3)] [volumewatcher] ev_VolumeChanged DidMount: /Volumes/.timemachine/B6711AF2-0A4C-4EA1-8B8A-A0536516EA43/2025-01-09-083836.backup
01/14 16:38:10 Debug: [Broker:Misc] [broker/filebrowser/volumeattached] found newly mounted drive at /Volumes/.timemachine/B6711AF2-0A4C-4EA1-8B8A-A0536516EA43/2025-01-09-083836.backup
01/14 16:38:10 Debug: [.NET ThreadPool Worker] [broker/filebrowser] getpartitioninfo 1 command: /usr/sbin/diskutil, args: info -plist '.timemachine/B6711AF2-0A4C-4EA1-8B8A-A0536516EA43/2025-01-09-083836.backup'
01/14 16:38:10 Info: [8] [stats] 46064mb Virtual, 2009mb Physical, 754mb Managed
01/14 16:38:10 Warn: [37] Radio stream backing returned early
01/14 16:38:10 Trace: [.NET ThreadPool Worker] [push2] exception thrown. restarting connection (net_WebSockets_ConnectionClosedPrematurely_Generic)
01/14 16:38:10 Trace: [.NET ThreadPool Worker] [push2] retrying connection in 55052ms
01/14 16:38:10 Warn: [.NET ThreadPool Worker] could not run /usr/sbin/diskutil info -plist '.timemachine/B6711AF2-0A4C-4EA1-8B8A-A0536516EA43/2025-01-09-083836.backup' -- Exit code was: 1
01/14 16:38:11 Trace: [Broker:Transport] [Kitchen] [LowQuality, 24/48 MP3 => 24/48] [PLAYING @ 5:55] Wake Me Up When September Ends - Green Day
01/14 16:38:15 Trace: [RaatSender] [Kitchen] [zoneplayer/raat] Endpoint Built-in Output State Changed: Playing => Prepared
01/14 16:38:15 Info: [Broker:Transport] [zone Kitchen] OnPlayFeedback StoppedEndOfMediaNatural
01/14 16:38:15 Trace: [RaatSender] [Built-in Output] [raatclient] SENT [22]{"request":"end_stream"}
01/14 16:38:15 Trace: [Broker:Transport] [Kitchen] [LowQuality, 24/48 MP3 => 24/48] [STOPPED @ 0:00] Wake Me Up When September Ends - Green Day
01/14 16:38:15 Info: [Worker (1)] [audio/env] [zoneplayer] All streams were disposed
01/14 16:38:15 Trace: [.NET ThreadPool Worker] [Built-in Output] [raatclient] GOT [20] {"status":"Ended"}
01/14 16:38:15 Trace: [.NET ThreadPool Worker] [Built-in Output] [raatclient] GOT [22] {"status":"Success"}
01/14 16:38:16 Debug: [.NET ThreadPool Worker] [easyhttp] [578] POST to https://api.roonlabs.net/internetradio/2/api/reporting/internetradioplayback/events?format=msgpack& returned after 226 ms, status code: 200, request body size: 171 B
01/14 16:38:16 Debug: [.NET ThreadPool Worker] [easyhttp] [579] POST to https://api.roonlabs.net/internetradio/2/api/reporting/internetradioplayback/plays?format=msgpack& returned after 262 ms, status code: 200, request body size: 176 B
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:16 Debug: [Broker:Media] [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
01/14 16:38:20 Trace: [Broker:Transport] [zone Kitchen] [zone] no playback for 5s, suspending to release audio device
01/14 16:38:20 Trace: [Broker:Transport] [zone Kitchen] Suspend
01/14 16:38:20 Trace: [Broker:Transport] [zone Kitchen] Stop
01/14 16:38:20 Info: [Broker:Transport] [zone Kitchen] OnPlayFeedback Stopped
01/14 16:38:20 Trace: [Broker:Transport] [zone Kitchen] Stop
01/14 16:38:20 Info: [Broker:Transport] [zone Kitchen] Canceling Pending Sleep
01/14 16:38:20 Info: [Broker:Transport] [zone Kitchen] Canceling Pending Sleep
01/14 16:38:20 Info: [Worker (2)] [audio/env] [zoneplayer -> stream] All streams were disposed
01/14 16:38:20 Trace: [Worker (1)] [Built-in Output] [raatclient] SENT [23]{"request":"teardown"}
01/14 16:38:20 Trace: [Worker (1)] [Kitchen] [zoneplayer/raat] Endpoint Built-in Output State Changed: Prepared => Idle
01/14 16:38:20 Debug: [Worker (1)] [raat/tcpaudiosource] disconnecting
01/14 16:38:20 Info: [Worker (6)] [audio/env] [zoneplayer -> stream -> endpoint] All streams were disposed
01/14 16:38:20 Trace: [.NET ThreadPool Worker] [Built-in Output] [raatclient] GOT [19] {"status":"Teardown"}
01/14 16:38:20 Info: [Worker (1)] sleep 102ms after flush

I don’t pretend to understand what Roon is saying here but, as a retired systems engineer, I can see that Roon isn’t happy! What I find really confusing is that playing the Planet Rock radio stream via Safari works well. I have a screenshot showing it ran for 45 hours before stopping - and that may well have been me doing something. Yet with exactly the same internet connection, hardware and cabling, Roon falls over within a few seconds to a few hours.
And this is on a single Mac running both the RoonServer and Roon Endpoint.

I should probably add that this problem of Live Radio dropping out has existed for some time, maybe a year, and in the meantime I’ve changed the Mac mini the RoonServer is running on and changed from Mavericks to Sonoma all in an effort to solve it. Here is another post Warn: [1] frame took ...... and Too many dropouts at an earlier stage of the investigation. The troublesome Mac mini here is now not in service. It’s on the shelf with no power and no network connection so cannot be part of the present problem!

But it is of course possible that there have been several problems, depending on the hardware configuration, with the same symptoms. So maybe best to focus on solving what is wrong with the present setup!