Internet Radio: Too Many Dropouts, Killing Stream, Only Happens with Roon

Roon Core Machine

MacOS Montery
MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)
3.5 GHz Dual-Core Intel Core i7
16 GB 2133 MHz LPDDR3

DB on MBP SSD, Library on directly connected USB-3 HD

Networking Gear & Setup Details

MBP ethernet to network

Connected Audio Devices

Streaming to a hardwired Cambridge Audio 851N

Number of Tracks in Library

Description of Issue

I routinely have dropouts when streaming internet radio stations through Roon to my Cambridge 851N (see logs below), usually within 15 mins of starting the stream, and I’ve reproduced it with the following radio stations repeatably:

  • Dash Radio: 80s
  • Radio Paradise: Mellow Mix
  • SomaFM: Illinois Street Lounge

The 851N can stream internet radio directly, and using the same endpoint links as Roon uses it never drops the streams. I accidentally left Soma playing overnight the other night and it was still going strong in the morning. This is just an issue with Roon streaming internet radio. I don’t know with which version it started but it’s somewhat recent, causing issues over the past 3 months, never had a problem before that.

Logs from a stopped stream:

08/04 17:06:19 Trace: [Music-Room-851N] [LowQuality, 24/44 MP3 => 32/44] [PLAYING @ 19:40] The Doobie Brothers - One Step Closer
08/04 17:06:20 Trace: [Cambridge Audio 851N @ 192.168.1.250:35201] [raatclient] GOT [17] {"samples":140732,"status":"Dropout"}
08/04 17:06:20 Warn: [Music-Room-851N] [zoneplayer/raat] Too many dropouts (>3s dropped out in the last 30s). Killing stream
08/04 17:06:20 Trace: [Music-Room-851N] [zoneplayer/raat] too many dropouts. stopping stream
08/04 17:06:20 Trace: [Music-Room-851N] [zoneplayer/raat] Endpoint Cambridge Audio 851N State Changed: Playing => Prepared
08/04 17:06:20 Trace: [Cambridge Audio 851N @ 192.168.1.250:35201] [raatclient] SENT [19209]{"request":"end_stream"}
08/04 17:06:20 Warn: [zone Music-Room-851N] Track Stopped Due to Slow Media
08/04 17:06:20 Trace: Attempting to play channel URL: icy://ice55.securenetsystems.net/DASH7
08/04 17:06:20 Debug: [raat/tcpaudiosource] disconnecting
08/04 17:06:20 Info: [zone Music-Room-851N] OnPlayFeedback StoppedEndOfMediaUnnatural
08/04 17:06:20 Info: [zone Music-Room-851N] OnPlayFeedback Stopped
08/04 17:06:20 Info: [zone Music-Room-851N] Canceling Pending Sleep
08/04 17:06:20 Warn: [streammediafile] error reading stream: Unable to read data from the transport connection: interrupted.
08/04 17:06:20 Info: [zone Music-Room-851N] Canceling Pending Sleep
08/04 17:06:20 Trace: [Music-Room-851N] [LowQuality, 24/44 MP3 => 32/44] [STOPPED @ 0:00] The Doobie Brothers - One Step Closer
08/04 17:06:20 Info: [Music-Room-851N] [zoneplayer] advance didn't change the track. returning short read
08/04 17:06:20 Warn: [raat/tcpaudiosource] send failed: Object reference not set to an instance of an object
08/04 17:06:20 Warn: [raat/tcpaudiosource] disconnecting + retrying
08/04 17:06:20 Info: [audio/env] [zoneplayer -> stream] All streams were disposed
08/04 17:06:20 Info: [audio/env] [zoneplayer] All streams were disposed
08/04 17:06:20 Info: [audio/env] [zoneplayer -> stream -> endpoint] All streams were disposed
08/04 17:06:20 Trace: [Cambridge Audio 851N @ 192.168.1.250:35201] [raatclient] GOT [17] {"status":"Ended"}
08/04 17:06:20 Trace: [Cambridge Audio 851N @ 192.168.1.250:35201] [raatclient] GOT [19209] {"status":"Success"}
08/04 17:06:20 Info: sleep 57ms after flush
08/04 17:06:20 Info: [Music-Room-851N] [zoneplayer] Playing: channel://icy%3a%2f%2fice55.securenetsystems.net%2fDASH7
08/04 17:06:20 Trace: [Cambridge Audio 851N @ 192.168.1.250:35201] [raatclient] GOT [15] {"message":{"signal_path":[{"from_sample_rate":44100,"to_sample_rate":384000,"type":"pcm_sample_rate_conversion","quality":"enhanced"},{"method":"analog_digital","type":"output","quality":"lossless"}]},"status":"OutputMessage"}
08/04 17:06:20 Debug: [easyhttp] [56501] POST to https://internetradio.roonlabs.net/2/api/reporting/internetradioplayback/events?format=msgpack& returned after 116 ms, status code: 200
08/04 17:06:20 Trace: [Cambridge Audio 851N @ 192.168.1.250:35201] [raatclient] GOT [15] {"message":{"signal_path":[{"from_sample_rate":-1,"to_sample_rate":384000},{"method":"analog_digital","type":"output","quality":"lossless"}]},"status":"OutputMessage"}
08/04 17:06:20 Warn: [Music-Room-851N] [zoneplayer/raat] invalid signal path element: {"from_sample_rate":-1,"to_sample_rate":384000}
08/04 17:06:20 Warn: [Music-Room-851N] [zoneplayer/raat] Sooloos.JSONExtensions.JSONException: JSON: missing required string field: type
  at Sooloos.JSONExtensions.Extensions.GetString (System.Object o, System.String key) [0x0001a] in <1ccbcb5fed3a40f7a534108821e72cb1>:0 
  at Sooloos.Broker.Transport.RaatZonePlayer.ev_output_message (Sooloos.Broker.Transport.RaatZonePlayer+Endpoint ep, Base.JDictionary msg) [0x0003f] in <fd53df64aac649f186347feb51fef640>:0 
08/04 17:06:20 Debug: [easyhttp] [56503] POST to https://internetradio.roonlabs.net/2/api/reporting/internetradioplayback/plays?format=msgpack& returned after 116 ms, status code: 200
08/04 17:06:20 Trace: Got ICY Stream Title [The Doobie Brothers - One Step Closer]
08/04 17:06:20 Warn: [Music-Room-851N] [zoneplayer/raat] long rtt sync Cambridge Audio 851N: realtime=1182368726333 rtt=199500us offset=-53022716273us delta=173503us drift=298067us in 1181.4045s (252.299ppm, 908.277ms/hr)
08/04 17:06:20 Info: [Music-Room-851N] [zoneplayer]     Open Result (Playing):Result[Status=Success]
08/04 17:06:20 Info: [Music-Room-851N] [zoneplayer] Aborting play because track changed
08/04 17:06:20 Warn: [streammediafile] error reading stream: Unable to read data from the transport connection: interrupted.
08/04 17:06:20 Info: [audio/env] [zoneplayer] All streams were disposed
08/04 17:06:20 Debug: [easyhttp] [56502] POST to https://internetradio.roonlabs.net/2/api/reporting/internetradioplayback/events?format=msgpack& returned after 413 ms, status code: 200
08/04 17:06:20 Debug: [easyhttp] [56504] POST to https://internetradio.roonlabs.net/2/api/reporting/internetradioplayback/plays?format=msgpack& returned after 109 ms, status code: 400