CMS 4.4.0 reports “Linux Player is not configured or ready to receive push commands over XMR” but XMR WebSocket is connected (Docker setup)

Environment

  • CMS version: 4.4.0

  • Installation method: Docker (official docker-compose)

  • Player: Linux Player v4 (Electron)

  • OS player: Ubuntu

  • CMS URL:
    http://YOUR_CMS_URL

  • XMR port exposed: 9505

Containers running:

  • cms-web

  • cms-xmr

  • cms-db

  • cms-memcached

Both cms-web and cms-xmr containers are on the same docker network.


Problem

CMS displays the warning:

Linux Player is not configured or ready to receive push commands over XMR.

However, player debug logs clearly show a successful WebSocket connection and active heartbeat messages.

The player is:

  • authorized

  • active

  • connected

  • downloading layouts

  • playing content correctly

So XMR appears to be working, but CMS still reports the player as not ready.


Evidence that XMR is working

Player debug log:

Xmr::start: connecting to ws://YOUR_CMS_URL/xmr
Xmr::open
XMR Connected

MessageEvent
Heartbeat

Also visible in logs:

method=registerDisplay
code="READY"
message="Display is active and ready to start."

requiredFiles
mediaInventory
notifyStatus
submitStats
schedule change received
layout downloaded

Network verification

From the player machine:

nc -vz YOUR_CMS_URL 9505
Connection succeeded
curl -i http://YOUR_CMS_URL/xmr
HTTP/1.1 426 Upgrade header MUST be provided
Upgrade: websocket
Connection: Upgrade

Port 9505 reachable externally and listening.


Player configuration files

config.json

{
 "xmrChannel": "UUID_REDACTED",
 "cmsUrl": "http://YOUR_CMS_URL"
}

cms_config.json

{
 "displayName": "Linux Player",
 "settings": {
  "xmrWebSocketAddress": "",
  "xmrCmsKey": "REDACTED",
  "collectionInterval": 299
 }
}

Steps already attempted

  • verified docker containers running

  • verified XMR port exposed

  • verified websocket endpoint reachable

  • restarted docker stack

  • restarted player

  • removed ~/.config/xibo-player and re-registered

  • re-authorized display in CMS

  • used “Reconfigure XMR” checkbox

  • cleared player cache

  • verified player receives schedules and downloads content

Result is always the same:

XMR connects successfully but CMS still shows warning.


Expected behaviour

When XMR WebSocket is connected and heartbeat messages are received, CMS should mark the display as ready for push commands.


Question

Is this a known issue in CMS 4.4.0 where the XMR capability flag is not updated even though the websocket session is active?

Is there a way to force CMS to refresh the XMR readiness status?

1 Like

Might be relevant:

2 Likes

Brother, it’s been 3 weeks since I’m looking everywhere to find the solution. THAT one is working, finally !!! Absolute boss, thanks a lot !!

2 Likes

Glad you managed to fix it ! Thanks go to @linuxnow

2 Likes

Hope it will be merged :slight_smile:

Otherwise I publish a docker image with my patches :stuck_out_tongue:

2 Likes

I hope so. So simple but at the same time so frustrating !

Thanks for the solution man

2 Likes

The Windows Electron client is currently also identifying itself as “linux”; I don’t know if this affects the fix or, if so, how.

1 Like

Maybe @dan can give some insight ?