Intermittent Dropouts in Live Radio Playback on Roon ROCK (ref#U2UGEW)

Hi! What’s not quite right with Roon?

· None of the above quite fits

None of the above quite fits

· None of these quite match

Tell us what's going on

· I am running Roon ROCK on an Intel NUC 11th Gen i7 32GB version 2.64 build 1646 but I have had this issue on and off for the last. 2 years. I have a ubiquiti based netwrok and the ROCK server is connected to the network by ethernet. I have a problem when using Roon Live Radio where occasionally Roon Live Radio just stops playing. Somtimes this can be every few minutes. It is most obvious on my KitchenPi end point which is a ropieee end point but it is not exclusive to this end point - it just shows here as this end point is primarliy used like an internet radio albeit using Roon as the source. It looks as though Roon is internally treating the live radio stream as if it has "ended." Notice at each dropout: [STOPPED @ 0:00] — the seek position resets to zero and OnPlayFeedback Stopped fires (not Paused). As I understand it this is the same sequence Roon uses when it reaches the end of a track or queue item. For a live radio stream there is no "end," so something in Roon's stream handling logic is incorrectly concluding the stream is finished. I will attach a relevant example section from the logs:
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [easyhttp] [94428] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3d320000.norewind.m3u8 returned after 72 ms, status code: 200, request body size: 0 B
04/09 06:38:18 [Local 04/09 07:38:18] Trace: [IQaudIODAC] [raatclient] GOT [11] {"time":71063590280759,"status":"Success"}
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [easyhttp] [94431] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277455736.ts returned after 85 ms, status code: 200, request body size: 0 B
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [easyhttp] [94429] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=False×tamp=-1& returned after 172 ms, status code: 200, request body size: 0 B
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [easyhttp] [94430] POST to https://api.roonlabs.net/internetradio/2/api/reporting/internetradioplayback/events?format=msgpack& returned after 212 ms, status code: 200, request body size: 172 B
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Debug: [query] Sooloos.Broker.Radio.Channel:1 dirty items, rebuild threshold: 2000, rebuilding? False
04/09 06:38:18 [Local 04/09 07:38:18] Info:
--[ SignalPath ]---------------------------------------------
SignalPath Quality = LowQuality
Elements:
Source Format=Aac 48000/24/2 Quality=LowQuality
Raat Device=IQaudIODAC
Output OutputType=Local_Alsa Quality=Lossless SubType= Model=IQaudIODAC
------------------------------------------------------------
04/09 06:38:19 [Local 04/09 07:38:19] Debug: [easyhttp] [94432] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3d320000.norewind.m3u8 returned after 86 ms, status code: 200, request body size: 0 B
04/09 06:38:19 [Local 04/09 07:38:19] Debug: [easyhttp] [94433] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277455737.ts returned after 90 ms, status code: 200, request body size: 0 B
04/09 06:38:23 [Local 04/09 07:38:23] Debug: [easyhttp] [94434] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True×tamp=-1& returned after 187 ms, status code: 200, request body size: 0 B
04/09 06:38:23 [Local 04/09 07:38:23] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [100% buf] [PLAYING @ 0:05] The Radio 2 Breakfast Show - Gary Davies with Michaela Strachan!
04/09 06:38:24 [Local 04/09 07:38:24] Info: [stats] 10458mb Virtual, 1982mb Physical, 1158mb Managed, 824mb estimated Unmanaged, 424 Handles, 92 Threads, 0.65% of runtime in GC pauses, 22ms last GC pause duration
04/09 06:38:25 [Local 04/09 07:38:25] Debug: [easyhttp] [94435] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3d320000.norewind.m3u8 returned after 86 ms, status code: 200, request body size: 0 B
04/09 06:38:25 [Local 04/09 07:38:25] Debug: [easyhttp] [94436] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277455738.ts returned after 87 ms, status code: 200, request body size: 0 B
04/09 06:38:28 [Local 04/09 07:38:28] Debug: [easyhttp] [94437] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True×tamp=-1& returned after 183 ms, status code: 200, request body size: 0 B
04/09 06:38:28 [Local 04/09 07:38:28] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [100% buf] [PLAYING @ 0:10] The Radio 2 Breakfast Show - Gary Davies with Michaela Strachan!
04/09 06:38:31 [Local 04/09 07:38:31] Debug: [easyhttp] [94438] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3d320000.norewind.m3u8 returned after 87 ms, status code: 200, request body size: 0 B
04/09 06:38:31 [Local 04/09 07:38:31] Debug: [easyhttp] [94439] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277455739.ts returned after 98 ms, status code: 200, request body size: 0 B
04/09 06:38:33 [Local 04/09 07:38:33] Trace: [library] endmutation in 24ms
04/09 06:38:33 [Local 04/09 07:38:33] Debug: [easyhttp] [94440] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True×tamp=-1& returned after 197 ms, status code: 200, request body size: 0 B
04/09 06:38:33 [Local 04/09 07:38:33] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [100% buf] [PLAYING @ 0:15] The Radio 2 Breakfast Show - Gary Davies with Michaela Strachan!
04/09 06:38:38 [Local 04/09 07:38:38] Debug: [easyhttp] [94441] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3d320000.norewind.m3u8 returned after 106 ms, status code: 200, request body size: 0 B
04/09 06:38:38 [Local 04/09 07:38:38] Debug: [easyhttp] [94442] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277455740.ts returned after 95 ms, status code: 200, request body size: 0 B
04/09 06:38:38 [Local 04/09 07:38:38] Debug: [easyhttp] [94443] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True×tamp=-1& returned after 182 ms, status code: 200, request body size: 0 B
04/09 06:38:38 [Local 04/09 07:38:38] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [100% buf] [PLAYING @ 0:20] The Radio 2 Breakfast Show - Gary Davies with Michaela Strachan!
04/09 06:38:39 [Local 04/09 07:38:39] Info: [stats] 10458mb Virtual, 1988mb Physical, 1161mb Managed, 827mb estimated Unmanaged, 424 Handles, 88 Threads, 0.65% of runtime in GC pauses, 13ms last GC pause duration
04/09 06:38:42 [Local 04/09 07:38:42] Trace: [library] endmutation in 25ms
04/09 06:38:43 [Local 04/09 07:38:43] Debug: [easyhttp] [94444] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True×tamp=-1& returned after 190 ms, status code: 200, request body size: 0 B
04/09 06:38:43 [Local 04/09 07:38:43] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [100% buf] [PLAYING @ 0:25] The Radio 2 Breakfast Show - Gary Davies with Michaela Strachan!
04/09 06:38:44 [Local 04/09 07:38:44] Debug: [easyhttp] [94445] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3d320000.norewind.m3u8 returned after 94 ms, status code: 200, request body size: 0 B
04/09 06:38:44 [Local 04/09 07:38:44] Debug: [easyhttp] [94446] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277455741.ts returned after 90 ms, status code: 200, request body size: 0 B
04/09 06:38:48 [Local 04/09 07:38:48] Debug: [easyhttp] [94447] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True×tamp=-1& returned after 183 ms, status code: 200, request body size: 0 B
04/09 06:38:48 [Local 04/09 07:38:48] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [100% buf] [PLAYING @ 0:30] The Radio 2 Breakfast Show - Gary Davies with Michaela Strachan!
04/09 06:38:48 [Local 04/09 07:38:48] Trace: [KitchenPi] [zoneplayer/raat] sync IQaudIODAC: realtime=71093805689741 rtt=2500us offset=58081628689us delta=567us drift=390us in 30.3155s (12.881ppm, 46.372ms/hr)
04/09 06:38:51 [Local 04/

Tell us about your home network

· Router Ubiqiti UDR7 connected with cat6 to 2.5gbs switch in main distrbution cupboard which onward connects (using cat6) to further 1gbs switch local to Roon ROCK server. VPN used is tailscale for external access and ARC.

I should add that the Ropieee end point uses the API for control and that I am the only user of the Roon App/client and I am not pausing or stopping the output from the roon app/client it is just a random stop.

Hi @Marcus_Russell,

Thanks for writing in and for sharing your report!

From a fresh Roon Server diagnostic report, your server logs show constant communication with two API clients: 192.168.1.149 and 192.168.1.156. These are likely Roon Extension Managers or automation platforms, perhaps?

  • As a next step, temporarily disable all extensions in Settings > Extensions.
Extensions have the authority to send Stop or Pause commands. If an extension is misconfigured or a "Sleep Timer" script is running on one of those IPs, it will stop the Radio on the server regardless of what your remotes are doing.

With that, if the MacBook was grouped with your other streamers, and with the MacBook’s connection failed as shown in the logs (04:59:20 … Giving up), Roon will sometimes stop playback for the entire group to prevent the zones from falling out of sync.

  • Test out ungrouping all zones and play Roon Radio to a single wired streamer (like the Altair) to see if the behavior persists.
Feel free to reproduce the issue again and share the track name, and we’ll take another look as well.

Thanks Marcus, we’ll be monitoring for your reply! :+1:

Thanks for the prompt response. 192.168.1.149 is an extension manager only — happy to disable it for testing. 192.168.1.156 runs an extension manager plus my custom Roon HTTP API bridge that controls the KitchenPi zone via hardware buttons. Disabling it would remove my primary control mechanism, making normal use impossible. However, examining the logs around both dropout events, neither .149 nor .156 sends a com.roonlabs.transport:2/control command before the stop occurs. Both only receive the zones_changed notification after the fact. No zones are grouped in Roon in my setup. The pattern at each dropout is a bare [zone KitchenPi] Pause followed by OnPlayFeedback Stopped with no preceding control command from any API client. The HLS stream and network are healthy throughout (all HTTP 200, 100% buffer). Could there be an internal code path within Roon that triggers this Pause independently?

Ok I have a hypothesis.i noticed this endpoint often stops when I enter the room and in pondering why this might be I hit upon AirPlay. Given AirPlay devices broadcast their availability via mDNS/Bonjour, and Apple devices continuously scan for AirPlay-compatible targets when an iPhone or other Apple device sees an AirPlay receiver and “considers” it, the receiver software (ShairPort/RoPieee) may do prepare-to-receive work. It therefore could be that being probed or having a brief stream-handshake attempt is enough to cause the RoPieee endpoint to assert audio control — which would translate to “pause whatever else is playing.”

So I have disabled AirPlay in the RoPieee interface and will see if this reduces or eliminates the false stops. I will report back within a few days but meanwhile no further action from yourselves is required.

Sounds good @Marcus_Russell, we’ll be on standby for your results. :+1:

Ok with airplay off I didn’t get any false stops. I have re-enabled and just captured one. This is the relevant section from the log:

04/20 16:25:12 \[Local 04/20 17:25:12\] Trace: \[KitchenPi\] \[LowQuality, 24/48 AAC => 24/48\] \[PLAYING @ 108:46\] Rozalla - Everybody’s Free (To Feel Good)
04/20 16:25:14 \[Local 04/20 17:25:14\] Debug: \[easyhttp\] \[244858\] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3D320000.norewind.m3u8 returned after 75 ms, status code: 200, request body size: 0 B
04/20 16:25:14 \[Local 04/20 17:25:14\] Debug: \[easyhttp\] \[244859\] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277609739.ts returned after 83 ms, status code: 200, request body size: 0 B
04/20 16:25:17 \[Local 04/20 17:25:17\] Debug: \[easyhttp\] \[244860\] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& returned after 184 ms, status code: 200, request body size: 0 B
04/20 16:25:17 \[Local 04/20 17:25:17\] Trace: \[library\] endmutation in 14ms
04/20 16:25:17 \[Local 04/20 17:25:17\] Trace: \[KitchenPi\] \[LowQuality, 24/48 AAC => 24/48\] \[PLAYING @ 108:51\] Rozalla - Everybody’s Free (To Feel Good)
04/20 16:25:18 \[Local 04/20 17:25:18\] Trace: \[zone KitchenPi\] Pause
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: \[zone KitchenPi\] OnPlayFeedback Stopped
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: \[zone KitchenPi\] Canceling Pending Sleep
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: \[zone KitchenPi\] Canceling Pending Sleep
04/20 16:25:18 \[Local 04/20 17:25:18\] Trace: \[KitchenPi\] \[LowQuality, 24/48 AAC => 24/48\] \[STOPPED @ 0:00\] Rozalla - Everybody’s Free (To Feel Good)
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: \[audio/env\] \[zoneplayer → stream\] All streams were disposed
04/20 16:25:18 \[Local 04/20 17:25:18\] Trace: \[KitchenPi\] \[zoneplayer/raat\] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/20 16:25:18 \[Local 04/20 17:25:18\] Trace: \[IQaudIODAC\] \[raatclient\] SENT \[108\]{“request”:“end_stream”}
04/20 16:25:18 \[Local 04/20 17:25:18\] Debug: \[raat/tcpaudiosource\] disconnecting
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: \[audio/env\] \[zoneplayer → stream → endpoint\] All streams were disposed
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: \[audio/env\] \[zoneplayer\] All streams were disposed
04/20 16:25:18 \[Local 04/20 17:25:18\] Trace: \[IQaudIODAC\] \[raatclient\] GOT \[99\] {“status”:“Ended”}
04/20 16:25:18 \[Local 04/20 17:25:18\] Trace: \[IQaudIODAC\] \[raatclient\] GOT \[108\] {“status”:“Success”}
04/20 16:25:18 \[Local 04/20 17:25:18\] Info: sleep 39ms after flush

I am sharing this with @spockfish_sf in the Ropieee area in case he can shed any light.

Further three examples this morning.
For info .122 is the rock server and .29 and .240 are laptop connections
First occurence:
04/21 07:30:40 [Local 04/21 08:30:40] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [PLAYING @ 50:28] Dua Lipa - New Rules
04/21 07:30:41 [Local 04/21 08:30:41] Trace: [KitchenPi] [zoneplayer/raat] sync IQaudIODAC: realtime=59856355634982 rtt=2000us offset=43735711634us delta=41us drift=36123us in 3029.0435s (11.926ppm, 42.933ms/hr)
04/21 07:30:42 [Local 04/21 08:30:42] Debug: [easyhttp] [248785] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& returned after 192 ms, status code: 200, request body size: 0 B
04/21 07:30:42 [Local 04/21 08:30:42] Info: [stats] 12142mb Virtual, 2491mb Physical, 1757mb Managed, 734mb estimated Unmanaged, 407 Handles, 92 Threads, 0.95% of runtime in GC pauses, 21ms last GC pause duration
04/21 07:30:43 [Local 04/21 08:30:43] Warn: [remoting/remotingprotocolv2] [remotingprotocol] read 0 bytes, error code: ConnectionReset
04/21 07:30:43 [Local 04/21 08:30:43] Info: [remoting/serverconnectionv2] Client disconnected: 192.168.1.240:62441
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [remoting/brokerserver] [initconn 192.168.1.29:56346=>192.168.1.122:9332] Connected
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [remoting/brokerserver] [initconn 192.168.1.29:56346=>192.168.1.122:9332] Resumed Session
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [remoting/remotingprotocolv2] resume send 482 messages, 19KiB
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [raat] [sood] Refreshing device list
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [raatserver] [sood] Refreshing device list
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [zone KitchenPi] Pause
04/21 07:30:43 [Local 04/21 08:30:43] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/21 07:30:43 [Local 04/21 08:30:43] Info: [zone KitchenPi] Canceling Pending Sleep
04/21 07:30:43 [Local 04/21 08:30:43] Info: [zone KitchenPi] Canceling Pending Sleep
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Dua Lipa - New Rules
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [IQaudIODAC] [raatclient] SENT [9]{“request”:“end_stream”}
04/21 07:30:43 [Local 04/21 08:30:43] Debug: [raat/tcpaudiosource] disconnecting
04/21 07:30:43 [Local 04/21 08:30:43] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/21 07:30:43 [Local 04/21 08:30:43] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/21 07:30:43 [Local 04/21 08:30:43] Info: [audio/env] [zoneplayer] All streams were disposed
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [IQaudIODAC] [raatclient] GOT [7] {“status”:“Ended”}
04/21 07:30:43 [Local 04/21 08:30:43] Trace: [IQaudIODAC] [raatclient] GOT [9] {“status”:“Success”}
04/21 07:30:43 [Local 04/21 08:30:43] Info: sleep 39ms after flush
2nd
04/21 08:31:05 [Local 04/21 09:31:05] Info: [remoting/serverconnectionv2] Client disconnected: 192.168.1.240:62441
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [remoting/brokerserver] [initconn 192.168.1.29:56522=>192.168.1.122:9332] Connected
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [remoting/brokerserver] [initconn 192.168.1.29:56522=>192.168.1.122:9332] Resumed Session
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [remoting/remotingprotocolv2] resume send 1774 messages, 71KiB
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [raat] [sood] Refreshing device list
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [raatserver] [sood] Refreshing device list
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [zone KitchenPi] Pause
04/21 08:31:05 [Local 04/21 09:31:05] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/21 08:31:05 [Local 04/21 09:31:05] Info: [zone KitchenPi] Canceling Pending Sleep
04/21 08:31:05 [Local 04/21 09:31:05] Info: [zone KitchenPi] Canceling Pending Sleep
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Bryan Ferry - Let’s Stick Together
04/21 08:31:05 [Local 04/21 09:31:05] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [IQaudIODAC] [raatclient] SENT [15]{“request”:“end_stream”}
04/21 08:31:05 [Local 04/21 09:31:05] Debug: [raat/tcpaudiosource] disconnecting
04/21 08:31:05 [Local 04/21 09:31:05] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/21 08:31:05 [Local 04/21 09:31:05] Info: [audio/env] [zoneplayer] All streams were disposed
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [IQaudIODAC] [raatclient] GOT [10] {“status”:“Ended”}
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [library] endmutation in 19ms
04/21 08:31:05 [Local 04/21 09:31:05] Trace: [IQaudIODAC] [raatclient] GOT [15] {“status”:“Success”}
04/21 08:31:05 [Local 04/21 09:31:05] Info: sleep 39ms after flush
3rd
04/21 08:33:05 [Local 04/21 09:33:05] Warn: [remoting/remotingprotocolv2] [remotingprotocol] read 0 bytes, error code: ConnectionReset
04/21 08:33:05 [Local 04/21 09:33:05] Info: [remoting/serverconnectionv2] Client disconnected: 192.168.1.240:62441
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [remoting/brokerserver] [initconn 192.168.1.29:56581=>192.168.1.122:9332] Connected
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [remoting/brokerserver] [initconn 192.168.1.29:56581=>192.168.1.122:9332] Resumed Session
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [remoting/remotingprotocolv2] resume send 113 messages, 4KiB
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [raat] [sood] Refreshing device list
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [raatserver] [sood] Refreshing device list
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [zone KitchenPi] Pause
04/21 08:33:05 [Local 04/21 09:33:05] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/21 08:33:05 [Local 04/21 09:33:05] Info: [zone KitchenPi] Canceling Pending Sleep
04/21 08:33:05 [Local 04/21 09:33:05] Info: [zone KitchenPi] Canceling Pending Sleep
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Belinda Carlisle - We Want The Same Thing
04/21 08:33:05 [Local 04/21 09:33:05] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/21 08:33:05 [Local 04/21 09:33:05] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [IQaudIODAC] [raatclient] SENT [18]{“request”:“end_stream”}
04/21 08:33:05 [Local 04/21 09:33:05] Debug: [raat/tcpaudiosource] disconnecting
04/21 08:33:05 [Local 04/21 09:33:05] Info: [audio/env] [zoneplayer] All streams were disposed
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [IQaudIODAC] [raatclient] GOT [16] {“status”:“Ended”}
04/21 08:33:05 [Local 04/21 09:33:05] Trace: [IQaudIODAC] [raatclient] GOT [18] {“status”:“Success”}
04/21 08:33:05 [Local 04/21 09:33:05] Info: sleep 39ms after flush

Hope this helps?

Hello @Marcus_Russell ,

Thanks for the log snippets. In our most recent Roon release, we made some changes that make Live Radio more resistant to temporary networking issues, can you please try the latest update and let us know if it’s helped on your end? Thanks!

Ok @noris I have just updated and will check in a day or so. Many thanks

Just to update you @noris the issue continues with 4 incidents today so far.
Roon log entries
1st instance
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [MacBook Air M1] [Inactive] [STOPPED @ 0:00]
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [zone MacBook Air M1] Loaded Queue=10 Tracks Swim=Inactive AutoSwim=True Loop=Disabled Shuffle=False
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [MacBook Air M1] [Inactive] [PAUSED @ 3:28/3:43] Iceberg - 10cc
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [zone KitchenPi] Pause
04/29 08:33:04 [Local 04/29 09:33:04] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/29 08:33:04 [Local 04/29 09:33:04] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 08:33:04 [Local 04/29 09:33:04] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Bob Marley & The Wailers - Could You Be Loved
04/29 08:33:04 [Local 04/29 09:33:04] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/29 08:33:04 [Local 04/29 09:33:04] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [IQaudIODAC] [raatclient] SENT [12]{“request”:“end_stream”}
04/29 08:33:04 [Local 04/29 09:33:04] Debug: [raat/tcpaudiosource] disconnecting
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [MacBook Air Speakers] [raatclient] GOT [5] {“action”:“Changed”,“controls”:{“volume”:{“type”:“number”,“info”:{“config”:{“type”:“coreaudio”,“device”:“BuiltInSpeakerDevice”}},“value”:100,“max”:100.0,“step”:1.0,“mute”:false,“min”:0.0}},“status”:“Success”}
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [IQaudIODAC] [raatclient] GOT [10] {“status”:“Ended”}
04/29 08:33:04 [Local 04/29 09:33:04] Info: [audio/env] [zoneplayer] All streams were disposed
04/29 08:33:04 [Local 04/29 09:33:04] Trace: [IQaudIODAC] [raatclient] GOT [12] {“status”:“Success”}
04/29 08:33:04 [Local 04/29 09:33:04] Info: sleep 39ms after flush
2nd instance
04/29 08:43:45 [Local 04/29 09:43:45] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [PLAYING @ 10:37] Taylor Swift - Elizabeth Taylor
04/29 08:43:47 [Local 04/29 09:43:47] Debug: [easyhttp] [12662] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& returned after 380 ms, status code: 200, request body size: 0 B
04/29 08:43:48 [Local 04/29 09:43:48] Debug: [easyhttp] [12663] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio%3D320000.norewind.m3u8 returned after 262 ms, status code: 200, request body size: 0 B
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [HiFi Altair] [LowQuality, 24/48 AAC => 24/48] [PLAYING @ 163:44] Taylor Swift - Elizabeth Taylor
04/29 08:43:48 [Local 04/29 09:43:48] Debug: [easyhttp] [12664] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277726913.ts returned after 247 ms, status code: 200, request body size: 0 B
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [zone KitchenPi] Pause
04/29 08:43:48 [Local 04/29 09:43:48] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/29 08:43:48 [Local 04/29 09:43:48] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 08:43:48 [Local 04/29 09:43:48] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Taylor Swift - Elizabeth Taylor
04/29 08:43:48 [Local 04/29 09:43:48] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/29 08:43:48 [Local 04/29 09:43:48] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [IQaudIODAC] [raatclient] SENT [15]{“request”:“end_stream”}
04/29 08:43:48 [Local 04/29 09:43:48] Debug: [raat/tcpaudiosource] disconnecting
04/29 08:43:48 [Local 04/29 09:43:48] Info: [audio/env] [zoneplayer] All streams were disposed
04/29 08:43:48 [Local 04/29 09:43:48] Debug: [easyhttp] [12665] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& canceled after 233 ms
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [IQaudIODAC] [raatclient] GOT [13] {“status”:“Ended”}
04/29 08:43:48 [Local 04/29 09:43:48] Trace: [IQaudIODAC] [raatclient] GOT [15] {“status”:“Success”}
04/29 08:43:48 [Local 04/29 09:43:48] Info: sleep 39ms after flush

3rd Instance
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [PLAYING @ 26:25] Melanie C - Undefeated Champion
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [HiFi Altair] [LowQuality, 24/48 AAC => 24/48] [PLAYING @ 190:14] Melanie C - Undefeated Champion
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [zone KitchenPi] Pause
04/29 09:10:18 [Local 04/29 10:10:18] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/29 09:10:18 [Local 04/29 10:10:18] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 09:10:18 [Local 04/29 10:10:18] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Melanie C - Undefeated Champion
04/29 09:10:18 [Local 04/29 10:10:18] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/29 09:10:18 [Local 04/29 10:10:18] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [IQaudIODAC] [raatclient] SENT [18]{“request”:“end_stream”}
04/29 09:10:18 [Local 04/29 10:10:18] Debug: [raat/tcpaudiosource] disconnecting
04/29 09:10:18 [Local 04/29 10:10:18] Info: [audio/env] [zoneplayer] All streams were disposed
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [IQaudIODAC] [raatclient] GOT [16] {“status”:“Ended”}
04/29 09:10:18 [Local 04/29 10:10:18] Trace: [IQaudIODAC] [raatclient] GOT [18] {“status”:“Success”}
04/29 09:10:18 [Local 04/29 10:10:18] Info: sleep 39ms after flush
04

4th Instance
04/29 09:16:39 [Local 04/29 10:16:39] Trace: [HiFi Altair] [LowQuality, 24/48 AAC => 24/48] [PLAYING @ 196:35] Vernon Kay - Good News Wednesday
04/29 09:16:39 [Local 04/29 10:16:39] Debug: [easyhttp] [14778] GET to https://as-hls-uk-live.akamaized.net/pool_74208725/live/uk/bbc_radio_two/bbc_radio_two.isml/bbc_radio_two-audio=320000-277727221.ts returned after 94 ms, status code: 200, request body size: 0 B
04/29 09:16:41 [Local 04/29 10:16:41] Debug: [easyhttp] [14779] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& returned after 178 ms, status code: 200, request body size: 0 B
04/29 09:16:42 [Local 04/29 10:16:42] Debug: [easyhttp] [14780] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& returned after 194 ms, status code: 200, request body size: 0 B
04/29 09:16:42 [Local 04/29 10:16:42] Trace: [zone KitchenPi] Pause
04/29 09:16:42 [Local 04/29 10:16:42] Info: [zone KitchenPi] OnPlayFeedback Stopped
04/29 09:16:42 [Local 04/29 10:16:42] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 09:16:42 [Local 04/29 10:16:42] Info: [zone KitchenPi] Canceling Pending Sleep
04/29 09:16:42 [Local 04/29 10:16:42] Trace: [KitchenPi] [LowQuality, 24/48 AAC => 24/48] [STOPPED @ 0:00] Vernon Kay - Good News Wednesday
04/29 09:16:42 [Local 04/29 10:16:42] Info: [audio/env] [zoneplayer → stream] All streams were disposed
04/29 09:16:42 [Local 04/29 10:16:42] Info: [audio/env] [zoneplayer → stream → endpoint] All streams were disposed
04/29 09:16:42 [Local 04/29 10:16:42] Trace: [KitchenPi] [zoneplayer/raat] Endpoint IQaudIODAC State Changed: Playing => Prepared
04/29 09:16:42 [Local 04/29 10:16:42] Trace: [IQaudIODAC] [raatclient] SENT [21]{“request”:“end_stream”}
04/29 09:16:42 [Local 04/29 10:16:42] Debug: [raat/tcpaudiosource] disconnecting
04/29 09:16:42 [Local 04/29 10:16:42] Info: [audio/env] [zoneplayer] All streams were disposed
04/29 09:16:42 [Local 04/29 10:16:42] Trace: [IQaudIODAC] [raatclient] GOT [19] {“status”:“Ended”}
04/29 09:16:42 [Local 04/29 10:16:42] Trace: [IQaudIODAC] [raatclient] GOT [21] {“status”:“Success”}
04/29 09:16:42 [Local 04/29 10:16:42] Info: sleep 39ms after flush

However I set up another end point (Auralic Altair) about a week back also playing Live Radio constantly and I see no issue with that. That is a roon ready end point as opposed to just Roon but I assume that is for this purpose the same?
I have updated my other post in the RoPieee sub category with this information as this does seem to suggest it is specific in some way to RoPieee or my particular raspberry pi

Hey @Marcus_Russell,

Thanks so much for the thorough troubleshooting and deductions you’ve made so far! It does seem to be AirPlay probing the trigger in this case, thus causing playback to stop.

We’ll need to escalate this to our development team to further analyze why Roon is interpreting an AirPlay handshake attempt as a reason to stop playback.

We’ll be in touch once the team has had time to review further, or if we may need any additional information from you during this process.

Thanks again! :raising_hands:

Hi @benjamin

I am not entirely convinced it is airplay. I have disabled airplay in the ropieee end point and I still see the same issues. And I have tried playing live radio to an Auralic Altair G2 continuously and the Altair does not exhibit the issue. It could be Bluetooth but Ropieee specifically disable Bluetooth yet the most frequent occurrence of a stop happens when I walk into the room with or without my phone but I do wear a smart watch and hearing aids both of which use Bluetooth

Hey @Marcus_Russell,

Interesting points here! From a fresh diagnostic report, your instinct again in your last post is correct — the cause is almost certainly not AirPlay on RoPieee itself, and the evidence points to something more fundamental: the MacBook Air repeatedly cycling its Roon connection, with each reconnect triggering a server-side SOOD device list refresh that stops the KitchenPi zone.

You also mentioned that your smartwatch and hearing aids use Bluetooth. RoPieee does disable BT, so this is unlikely to be the issue at the RoPieee endpoint. However, if the smartwatch or phone triggers the MacBook (e.g. waking it from sleep or causing a WiFi handoff when you walk in), that could explain the correlation with entering the room — the MacBook wakes up, reconnects to Roon, and fires a SOOD refresh.

As a simple next step: Test with the MacBook Roon app fully closed for a day. If KitchenPi dropouts cease entirely, that confirms the MacBook reconnect cycle is the trigger.

Thank you! :+1:

Hi @benjamin - looks like you’ve found it. Now been running with Roon closed for two days and no dropouts.
However I have also been running an Auralic Altair G1 for the last few weeks and that has shown no dropouts at any point. It could well be that it happens that the MacBook Air has the RoPieee selected as the current output?
Obviously it would be easy enough to test that but do you have any explanation for the MacBook Air’s behaviour in firing a SOOD refresh and why that results in a pause command given that the Roon server is Roon ROCK running on an Intel NUC and the MacBook is just a Remote?

Hey @Marcus_Russell,

Thanks for the update!

When the Roon Remote app on the MacBook loses its TCP connection to ROCK (e.g. due to the Mac sleeping, a Wi-Fi handoff, or the app backgrounding), and then reconnects, Roon treats this as a new or resumed client session. Part of that handshake involves the server refreshing its view of available RAAT endpoints via SOOD (the Roon device discovery protocol). This is essentially Roon saying “let me reconfirm what audio outputs are available and their current state.” It’s normal behaviour, but the resulting pause command is not so much.

Why does the SOOD refresh result in a Pause on KitchenPi specifically?

This is the key question, and the Altair comparison is the crucial clue. The likely explanation is:

  • When the MacBook reconnects, if KitchenPi/RoPieee is still selected as the MacBook's active output zone, the server-side session resume logic attempts to reconcile the playback state. There may be a code path where, during SOOD rediscovery, if the endpoint is "claimed" by a client that just dropped and reconnected, Roon briefly interrupts playback on that zone to re-establish the output assignment, and that manifests as the bare [zone KitchenPi] Pause with no preceding transport command.
  • The Altair doesn't exhibit this because it's a Roon Ready (RAAT-native) device with persistent state managed differently at the endpoint level, whereas the KitchenPi (RoPieee) is a RAAT endpoint without the same session resilience.
Let’s see if the following provides any further insight:
  • Test with MacBook open but KitchenPi NOT set as its output zone: if dropouts stop, this confirms the "claimed output" theory.
  • Check MacBook sleep/Wi-Fi settings: preventing the Mac from sleeping aggressively (or disabling "Wake for network access" and Wi-Fi power management) may reduce reconnect cycles.
All of this said, a client reconnect/SOOD refresh should not interrupt playback on a zone unless that zone is actively being transferred to the reconnecting client. We’ll share this information with development for additional vetting.

Thanks for all your troubleshooting so far, Marcus!

Thanks for that info @benjamin - helps my understannding greatly.

As it happens I have already set up a new test.
Open Roon on MacBook Air
Select Altair as the current output.
Leave at that and observe what happens.

Results

KitchenPi (RoPieee end point) continues to operate without pauses or interupption
Altair exhibits the issue now
If the Altair is actively playing I see log entries like this:

05/15 10:39:33 \[Local 05/15 11:39:33\] Trace: \[KitchenPi\] \[LowQuality, 24/48 AAC => 24/48\] \[PLAYING @ 212:03\] Vernon Kay - Ashley McBryde’s final two Tracks Of My Years
05/15 10:39:34 \[Local 05/15 11:39:34\] Trace: \[KitchenPi\] \[zoneplayer/raat\] sync IQaudIODAC: realtime=657332328278953 rtt=1816us offset=629772564675us delta=105us drift=158630us in 12724.6731265s (12.466ppm, 44.879ms/hr)
05/15 10:39:35 \[Local 05/15 11:39:35\] Debug: \[easyhttp\] \[278265\] GET to https://api.roonlabs.net/internetradio/2/api/stations/7c828d71-6de4-4a86-962f-6f5c0b5e2072/metadata?format=msgpack&wait=True&timestamp=-1& returned after 175 ms, status code: 200, request body size: 0 B
05/15 10:39:35 \[Local 05/15 11:39:35\] Trace: \[HiFi Altair\] \[zoneplayer/raat\] sync AURALiC ALTAIR_G1: realtime=16772964314350 rtt=708us offset=-7115355915us delta=-163us drift=-144508us in 16772.4069855s (-8.616ppm, -31.017ms/hr)
05/15 10:39:35 \[Local 05/15 11:39:35\] Trace: \[HiFi Altair\] \[LowQuality, 24/48 AAC => 24/48\] \[PLAYING @ 279:32\] Vernon Kay - Ashley McBryde’s final two Tracks Of My Years
05/15 10:39:36 \[Local 05/15 11:39:36\] Trace: \[zone HiFi Altair\] Pause
05/15 10:39:36 \[Local 05/15 11:39:36\] Info: \[zone HiFi Altair\] OnPlayFeedback Stopped
05/15 10:39:36 \[Local 05/15 11:39:36\] Info: \[zone HiFi Altair\] Canceling Pending Sleep
05/15 10:39:36 \[Local 05/15 11:39:36\] Info: \[zone HiFi Altair\] Canceling Pending Sleep
05/15 10:39:36 \[Local 05/15 11:39:36\] Trace: \[HiFi Altair\] \[zoneplayer/raat\] Endpoint AURALiC ALTAIR_G1 State Changed: Playing => Prepared
05/15 10:39:36 \[Local 05/15 11:39:36\] Trace: \[HiFi Altair\] \[LowQuality, 24/48 AAC => 24/48\] \[STOPPED @ 0:00\] Vernon Kay - Ashley McBryde’s final two Tracks Of My Years
05/15 10:39:36 \[Local 05/15 11:39:36\] Trace: \[AURALiC ALTAIR_G1 @ 192.168.1.142:36461\] \[raatclient\] SENT \[38262\]{“request”:“end_stream”}
05/15 10:39:36 \[Local 05/15 11:39:36\] Info: \[audio/env\] \[zoneplayer → stream\] All streams were disposed
05/15 10:39:36 \[Local 05/15 11:39:36\] Debug: \[raat/tcpaudiosource\] disconnecting
05/15 10:39:36 \[Local 05/15 11:39:36\] Info: \[audio/env\] \[zoneplayer → stream → endpoint\] All streams were disposed
05/15 10:39:36 \[Local 05/15 11:39:36\] Trace: \[AURALiC ALTAIR_G1 @ 192.168.1.142:36461\] \[raatclient\] GOT \[5536\] {“status”:“Ended”}
05/15 10:39:36 \[Local 05/15 11:39:36\] Trace: \[AURALiC ALTAIR_G1 @ 192.168.1.142:36461\] \[raatclient\] GOT \[38262\] {“status”:“Success”}
05/15 10:39:36 \[Local 05/15 11:39:36\] Info: \[audio/env\] \[zoneplayer\] All streams were disposed
If the Altair is already stopped then I see entries like this:
05/15 16:59:22 \[Local 05/15 17:59:22\] Info: \[library stats\] tracks: 14021 (hidden: 87), albums: 893 (hidden: 6), artists: 522, works: 8904, performances: 10503
05/15 16:59:30 \[Local 05/15 17:59:30\] Info: \[stats\] 70406mb Virtual, 1874mb Physical, 764mb Managed, 1110mb estimated Unmanaged, 519 Handles, 62 Threads, 0.63% of runtime in GC pauses, 3ms last GC pause duration
05/15 16:59:45 \[Local 05/15 17:59:45\] Info: \[stats\] 70406mb Virtual, 1874mb Physical, 770mb Managed, 1104mb estimated Unmanaged, 519 Handles, 65 Threads, 0.63% of runtime in GC pauses, 17ms last GC pause duration
05/15 17:00:00 \[Local 05/15 18:00:00\] Info: \[stats\] 70406mb Virtual, 1874mb Physical, 769mb Managed, 1105mb estimated Unmanaged, 519 Handles, 63 Threads, 0.63% of runtime in GC pauses, 7ms last GC pause duration
05/15 17:00:08 \[Local 05/15 18:00:08\] Trace: \[zone HiFi Altair\] Pause
05/15 17:00:13 \[Local 05/15 18:00:13\] Trace: \[roonapi\] \[apiclient 192.168.1.156:40620\] CONTINUE Changed {“message”:“Extension Manager already up to date”,“is_error”:false}
05/15 17:00:15 \[Local 05/15 18:00:15\] Info: \[stats\] 70406mb Virtual, 1874mb Physical, 771mb Managed, 1103mb estimated Unmanaged, 519 Handles, 62 Threads, 0.63% of runtime in GC pauses, 19ms last GC pause duration
05/15 17:00:19 \[Local 05/15 18:00:19\] Trace: \[roonapi\] \[apiclient 192.168.1.149:39928\] CONTINUE Changed {“message”:“Extension Manager already up to date”,“is_error”:false}
05/15 17:00:30 \[Local 05/15 18:00:30\] Info: \[stats\] 70406mb Virtual, 1874mb Physical, 759mb Managed, 1115mb estimated Unmanaged, 519 Handles, 65 Threads, 0.63% of runtime in GC pauses, 14ms last GC pause duration

So it is for the active output zone definitely where the issue arises and it is not related to Roon Ready vs Roon RAAT end point it applies to both

I have now set the MacBook Air up to point to a SqueezeBox Zone (two SqueezeBox radios grouped) and will observe what happens.

Not too concerend about reducing reconnect cycles as I now know I can select an unimportant output (like select the MacBook Air as the output) and I just need to avoid leaving it on end points/zones that other people might be listening to.

Thanks again

Hi @benjamin
Just to add to the data I did some more tests. Without adding the detail from the logs this can best me summarised as

  1. Checked remotes on:
    1. MacBook Air
    2. iMac
    3. iPhone
    4. iPad
  2. The only remote that has an issue is the MacBook Air - all others may sleep or be disconnected but none cause these false pauses
  3. The issue seems to be independent of the end point type. Have tested with the following end point types and the MacBook Air causes false pauses on all three:
    1. Roon
    2. Roon ready
    3. Squeezebox
  4. The fact that the iMac doesn’t cause the issue but the MacBook Air does tends to support the power management aspect even though the issue arises when the MacBook Air is powered externally or not.
  5. The MacBook Air is running Tahoe 26.4.1 the iMac is old so running Sequuoia 15.7.4 but I have had this issue for at least 2 years so I don’t think the OS version is significant.

So it is pretty specific but as you say “a client reconnect/SOOD refresh should not interrupt playback on a zone unless that zone is actively being transferred to the reconnecting client”
I’ll leave it with you guys