Issue with Roon API and Roon 2.0

Setup:
Roon Core (build 1128 production) on QNAP NAS (RoonOnNAS installation) and also running the Roon Extension Manager v1.1.2 in Docker (network_mode: host) with the following extensions: Alarm Clock v0.9.0, Extension Snapshots v0.1.3 with Web Controller v1.2.13

Issue:
Since the release of Roon 2.0 I see the REM constantly crashing and restarting as soon as I have a Windows Roon client (used as a remote only; running in Wine on Linux) open and connected to the Core. Does not happen when I use a non-Core-capable remote on mobile Android instead.

Excerpt from the Log
Inf: Starting Roon Extension Manager...
Inf: Docker for Linux found: Version 20.10.17-qnap1
Inf: Loading Extension Repository...
-> REQUEST 0 com.roonlabs.registry:1/info 
-> REQUEST 0 com.roonlabs.registry:1/info 
<- COMPLETE 0 Success {"core_id":"231d710a-b2f1-49a3-8cc9-a23b778fc1e8","display_name":"Roon (other)","display_version":"2.0 (build 1132) earlyaccess"}
-> REQUEST 1 com.roonlabs.registry:1/register {"extension_id":"com.theappgineer.extension-manager.DSCNAS1","display_name":"Roon Extension Manager @DSCNAS1","display_version":"1.1.2","publisher":"The Appgineer","email":"theappgineer@gmail.com","required_services":[],"optional_services":[],"provided_services":["com.roonlabs.settings:1","com.roonlabs.status:1","com.roonlabs.ping:1"],"website":"http://10.110.100.1:2507/extension-logs.tar.gz","token":"abcb7862-1b37-45e4-ad7d-86c403c77638"}
<- COMPLETE 0 Success {"core_id":"7d05e4b1-6c3e-4cd7-a757-ba78cc8849af","display_name":"Roon","display_version":"2.0 (build 1128) production"}
-> REQUEST 1 com.roonlabs.registry:1/register {"extension_id":"com.theappgineer.extension-manager.DSCNAS1","display_name":"Roon Extension Manager @DSCNAS1","display_version":"1.1.2","publisher":"The Appgineer","email":"theappgineer@gmail.com","required_services":[],"optional_services":[],"provided_services":["com.roonlabs.settings:1","com.roonlabs.status:1","com.roonlabs.ping:1"],"website":"http://10.110.100.1:2507/extension-logs.tar.gz","token":"aa3d52fb-0479-4ab2-aee4-8e3f36470fc9"}
<- CONTINUE 1 Registered {"core_id":"7d05e4b1-6c3e-4cd7-a757-ba78cc8849af","display_name":"Roon","display_version":"2.0 (build 1128) production","token":"aa3d52fb-0479-4ab2-aee4-8e3f36470fc9","provided_services":[],"http_port":9330,"extension_host":"127.0.0.1"}
Core found: Roon
Ping timer set
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {"subscription_key":"283"}
-> CONTINUE 1 Subscribed {"message":"Loading Extension Repository...","is_error":false}
{
  'roon-extension-snapshots': 'latest',
  'roon-extension-alarm-clock': 'latest',
  'roon-extension-manager': 'v1.x-standalone'
}
Inf: Extension Repository loaded (v1.0.14)
-> CONTINUE 1 Changed {"message":"Extension Repository loaded (v1.0.14)","is_error":false}
<- CONTINUE 1 Registered {"core_id":"231d710a-b2f1-49a3-8cc9-a23b778fc1e8","display_name":"Roon (other)","display_version":"2.0 (build 1132) earlyaccess","token":"abcb7862-1b37-45e4-ad7d-86c403c77638","provided_services":[],"http_port":9330,"extension_host":"10.110.100.1"}
Core found: Roon (other)
<- REQUEST 1 com.roonlabs.status:1/subscribe_status {"subscription_key":"156"}
-> CONTINUE 1 Subscribed {"message":"Extension Repository loaded (v1.0.14)","is_error":false}
events.js:291
      throw er; // Unhandled 'error' event
      ^

Error: socket hang up
    at connResetException (internal/errors.js:609:14)
    at Socket.socketOnEnd (_http_client.js:458:23)
    at Socket.emit (events.js:326:22)
    at endReadableNT (_stream_readable.js:1241:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on WebSocket instance at:
    at emitErrorAndClose (/home/node/node_modules/ws/lib/websocket.js:961:13)
    at ClientRequest.<anonymous> (/home/node/node_modules/ws/lib/websocket.js:820:5)
    at ClientRequest.emit (events.js:314:20)
    at Socket.socketOnEnd (_http_client.js:458:9)
    at Socket.emit (events.js:326:22)
    at endReadableNT (_stream_readable.js:1241:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'ECONNRESET'
}

A similar behavior was also reported by some users of rooExtend.

One of them solved his issue with a freshly burt SD-Card on his Pi :crazy_face:
But I can’t believe that this was the reason.

My observation is, that if the core is very busy and uses a lot of CPU, the Roon Extensions will be dropped off more often as if the Roon Core is idling.

My recommendation would be to watch CPU usage of the core which is quite high right after starting Roon. If it went down start REM and see if the issue persists.

Best DrCWO

Not really expected any change in behavior – and none detected.
Again: REM and the Extension are constantly crashing and restarting (Docker parameter restart: unless-stopped) as long as the Windows Roon client is open/active. So “starting REM after starting the remote client Roon” condition was already met anyway.

This might be worth a Support request, especially when there are multiple reports already. The call stack shows an issue with the web socket which is part of the Roon API.

The strange thing with a Windows Roon client is that to the Roon API it is reporting itself as a Roon Core, maybe this is now somehow causing issues.

1 Like

Just to keep the thread open.

1 Like

I too have noticed with recent Roon updates all the extensions i am running are constantly disappearing and they need to be pinged by trying to use them. Once pinged, they may pop back up in the extension screen after some time and start working again.

Has anyone from Roon acknowledged this issue yet?

I experienced no major change in this behavior using 2.0
Roon Core disconnects the Extensions sometimes. I experienced this running extensions on a separate Pi. Using WiFi this happens more often compared to a stable Ethernet Connection.
To handle these disconnects you must implement a mechanism that restarts the extension if it got disconnected by the core.

I wonder why and when the core makes these disconnections. Often rebooting the core also helps.

Best DrCWO

My extensions used to be more stable. All devices are hard wired, not connected by wifi. A few of the extensions are also running within a vm on the same machine as the roon core.

I can’t seem to notice any particular trend. Some fall off and some stay active, not always the same ones. They might stop after a few hours, or days.

1 Like

All of mine are (Docker). I see them sometimes listed in the log using localhost (127.0.0.1) and sometimes with the network address of the host.

Only Roon knows what is happening there :disappointed_relieved:
They use websocket communication in their API that I know for being extremely stable over log periods of time from other projects.

So whatever the reason is it sucks :face_vomiting:

Just to keep the thread open.

1 Like

Hi @BlackJack ,

Happy New Year and apologies for the slow response here. I brought up your case with our devs, but there is not enough into in the snippet to tell what is going on.

Can you please send us both the Core side and the Windows Client logs along with a timestamp of the issue when you have a chance? You can upload the logs to our Logs Uploader below, please let us know once uploaded, thanks!

https://workdrive.zohoexternal.com/collection/8i5239cc05950ac07456889838d9319545a82/external

1 Like

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.

I was now able to test and it looks like it’s fixed now (with the switch to .NET 6) – no more restarting Extensions and also stable display in Roon.


2 Likes

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.