Sonos and spotify not working, UPnP Error 800

I’m not sure if this is the best place to ask, but I’d like to know if anyone else is experiencing this issue.

Whenever I try to start a Spotify playlist on one of my Sonos speakers via Home Assistant (version 2024.11.3) (via the Spotify and Sonos Integrations), I get this error:

Failed to perform the action media_player/play_media. Error calling SonosMediaPlayerEntity._play_media on media_player.kantoor: UPnP Error 800 received: from 192.168.100.21

I’m not sure how long this has been happening, since I normally don’t start playback through Home Assistant. However, since yesterday (after an update), I’ve also been unable to add Spotify songs to my queue or play them using the Sonos app on my MacBook.

Screenshot 2024-12-13 at 09.02.36

At first, I didn’t think much of it—especially since I can still play Spotify on my Sonos speakers using the Spotify app. But I noticed that my fireworks automation (used for training the dog) also stopped working yesterday. It uses the “node-red-contrib-sonos-plus” in Node-RED and now shows this error:

[error] [sonos-universal:Set Playlist] group.queue.urispotify:Sonos error on AddURIToQueue UPnPError 800 (Command not supported or not a coordinator) :: Details: {"stack":"SonosError: Sonos error on AddURIToQueue UPnPError 800 (Command not supported or not a coordinator) at AVTransportService.handleErrorResponse (/usr/src/node-red/node_modules/@svrooij/sonos/lib/services/base-service.js:227:23) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async AVTransportService.handleRequestAndParseResponse (/usr/src/node-red/node_modules/@svrooij/sonos/lib/services/base-service.js:199:15) at async SonosDevice.AddUriToQueue (/usr/src/node-red/node_modules/@svrooij/sonos/lib/sonos-device.js:95:16) at async Object.groupQueueUriFromSpotify [as group.queue.urispotify] (/usr/src/node-red/node_modules/node-red-contrib-sonos-plus/src/sonos-universal.js:1854:20)","message":"Sonos error on AddURIToQueue UPnPError 800 (Command not supported or not a coordinator)","Action":"AddURIToQueue","FaultCode":"s:Client","Fault":"UPnPError","UpnpErrorCode":800,"UpnpErrorDescription":"Command not supported or not a coordinator","name":"SonosError"}

This automation had been working since November 1st, so I suspect something changed with the latest Sonos firmware update. I’ve tested it on different Sonos devices (Beam, One SL, SYMFONISK) and nothing seems to work anymore.

Here’s the Node-RED flow for reference:

[
    {
        "id": "81f11246ff9059e3",
        "type": "group",
        "z": "8530f6c17dac3cfc",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "594a50e3deba3604",
            "0e1121bc96c3c7cc",
            "c04bafefbe86afcf",
            "76a3e3c223b4da62",
            "e00354c9057fef1e",
            "02e40c20a1fc471c",
            "325b3e0c576f34bf",
            "e84a51ea47410cf2",
            "c14172eca8e5272c",
            "ec5dec25ad72a2ed",
            "6d88b0728701cdc7",
            "f60e64767173b8be",
            "5a7aa06fe04cb180",
            "d2ef06a1012c2ed4",
            "e644a38e50c0fa6a",
            "6a48e6dc2a91d105",
            "09e4c5aff5f24615",
            "3b9caccdced98b92",
            "7d88ea548862785e",
            "f422be3a09843ebf",
            "7ec2a9796a068e80"
        ],
        "x": 134,
        "y": 2039,
        "w": 852,
        "h": 582
    },
    {
        "id": "594a50e3deba3604",
        "type": "inject",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Start",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 230,
        "y": 2120,
        "wires": [
            [
                "0e1121bc96c3c7cc"
            ]
        ]
    },
    {
        "id": "0e1121bc96c3c7cc",
        "type": "function",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Get day's volume",
        "func": "flow.set(\"playing\", true);\n\nlet now = new Date();\n\nlet month = now.getMonth();\nlet day = now.getDate();\nlet hour = now.getHours();\n\nif (month !== 10 && month !== 11) {\n    node.warn(\"This function only runs in November or December.\");\n    return null;\n}\n\nlet dayInRange;\nif (month === 10) {\n    dayInRange = day;\n} else if (month === 11) {\n    dayInRange = 30 + day;\n}\n\nlet minVolume = 20;\nlet maxVolume = 50;\nlet growthFactor = 2;\n\nlet volume = minVolume + (maxVolume - minVolume) * Math.pow(dayInRange / 61, growthFactor);\n\nif (hour >= 20 || hour < 8) {\n    volume = volume / 4;\n}\n\nvolume = Math.round(volume);\n\nmsg.data = {\n    day: day,\n    month: month === 10 ? \"November\" : \"December\",\n    daysTillNewYear: 61 - dayInRange,\n    volume: Math.round(volume)\n};\n\nmsg.playerName = \"Eetkamer\"\nmsg.volume = Math.round(volume)\nmsg.sameVolume = true\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 430,
        "y": 2140,
        "wires": [
            [
                "76a3e3c223b4da62"
            ]
        ]
    },
    {
        "id": "c04bafefbe86afcf",
        "type": "chronos-scheduler",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "",
        "config": "84c9c58e01fdd414",
        "schedule": [
            {
                "trigger": {
                    "type": "sun",
                    "value": "solarNoon",
                    "offset": -15,
                    "random": false
                },
                "output": {
                    "type": "msg",
                    "property": {
                        "name": "payload",
                        "type": "str",
                        "value": ""
                    }
                }
            }
        ],
        "disabled": false,
        "multiPort": false,
        "nextEventPort": false,
        "delayOnStart": true,
        "onStartDelay": 0.1,
        "outputs": 1,
        "x": 220,
        "y": 2160,
        "wires": [
            [
                "0e1121bc96c3c7cc"
            ]
        ]
    },
    {
        "id": "76a3e3c223b4da62",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "player.become.standalone",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Leave group",
        "x": 650,
        "y": 2140,
        "wires": [
            [
                "e00354c9057fef1e"
            ]
        ]
    },
    {
        "id": "e00354c9057fef1e",
        "type": "switch",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Day's till New Year",
        "property": "data.daysTillNewYear",
        "propertyType": "msg",
        "rules": [
            {
                "t": "lte",
                "v": "7",
                "vt": "num"
            },
            {
                "t": "lte",
                "v": "15",
                "vt": "num"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "false",
        "repair": false,
        "outputs": 3,
        "x": 270,
        "y": 2280,
        "wires": [
            [
                "7d88ea548862785e"
            ],
            [
                "02e40c20a1fc471c"
            ],
            [
                "325b3e0c576f34bf"
            ]
        ]
    },
    {
        "id": "02e40c20a1fc471c",
        "type": "function",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Let Draagbaar join Eetkamer",
        "func": "msg.payload = \"Draagbaar\"\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 2320,
        "wires": [
            [
                "e84a51ea47410cf2"
            ]
        ]
    },
    {
        "id": "325b3e0c576f34bf",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "group.clear.queue",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Clear queue",
        "x": 250,
        "y": 2400,
        "wires": [
            [
                "c14172eca8e5272c"
            ]
        ]
    },
    {
        "id": "e84a51ea47410cf2",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "player.join.group",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Join speaker",
        "x": 810,
        "y": 2320,
        "wires": [
            [
                "325b3e0c576f34bf"
            ]
        ]
    },
    {
        "id": "c14172eca8e5272c",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "group.queue.urispotify",
        "state": "spotify:playlist:57Eqjb6w4BrYBu1QChuMAT",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Set Playlist",
        "x": 450,
        "y": 2400,
        "wires": [
            [
                "ec5dec25ad72a2ed",
                "7ec2a9796a068e80"
            ]
        ]
    },
    {
        "id": "ec5dec25ad72a2ed",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "group.set.queuemode",
        "state": "SHUFFLE_NOREPEAT",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Set queue mode",
        "x": 670,
        "y": 2400,
        "wires": [
            [
                "6d88b0728701cdc7"
            ]
        ]
    },
    {
        "id": "6d88b0728701cdc7",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "group.play.queue",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Play queue",
        "x": 890,
        "y": 2400,
        "wires": [
            [
                "f60e64767173b8be",
                "5a7aa06fe04cb180"
            ]
        ]
    },
    {
        "id": "f60e64767173b8be",
        "type": "delay",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Wait ~10 minutes",
        "pauseType": "random",
        "timeout": "10",
        "timeoutUnits": "minutes",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "7",
        "randomLast": "13",
        "randomUnits": "minutes",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 310,
        "y": 2500,
        "wires": [
            [
                "d2ef06a1012c2ed4"
            ]
        ]
    },
    {
        "id": "5a7aa06fe04cb180",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "group.get.members",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Get speakers",
        "x": 570,
        "y": 2500,
        "wires": [
            [
                "e644a38e50c0fa6a"
            ]
        ]
    },
    {
        "id": "d2ef06a1012c2ed4",
        "type": "function",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Remove playing context",
        "func": "if (!flow.get('playing')) {\n    node.warn(\"Playback already stopped. Ignoring stop command.\");\n    return null;\n}\n\nflow.set('playing', false);\n\nnode.warn(\"Stopping playing\");\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 310,
        "y": 2580,
        "wires": [
            [
                "6a48e6dc2a91d105"
            ]
        ]
    },
    {
        "id": "e644a38e50c0fa6a",
        "type": "function",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Get player names",
        "func": "let payload = msg.payload;\n\nlet playerNames = payload.map(item => item.playerName).join('/');\n\nmsg.payload = playerNames;\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 790,
        "y": 2500,
        "wires": [
            [
                "09e4c5aff5f24615"
            ]
        ]
    },
    {
        "id": "6a48e6dc2a91d105",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "group.pause",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Stop playing queue",
        "x": 570,
        "y": 2580,
        "wires": [
            []
        ]
    },
    {
        "id": "09e4c5aff5f24615",
        "type": "api-call-service",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Notify fireworks",
        "server": "fb1efe7bdab8eadc",
        "version": 7,
        "debugenabled": false,
        "action": "notify.notify",
        "floorId": [],
        "areaId": [],
        "deviceId": [],
        "entityId": [],
        "labelId": [],
        "data": "{\t   \"title\": \"Vuurwerk\",\t   \"message\": \"Vuurwerk training gestart op volume \" & msg.volume & \" via de speaker(s) \" & msg.payload\t}",
        "dataType": "jsonata",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [],
        "queue": "none",
        "blockInputOverrides": false,
        "domain": "notify",
        "service": "notify",
        "x": 800,
        "y": 2580,
        "wires": [
            []
        ]
    },
    {
        "id": "3b9caccdced98b92",
        "type": "comment",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Play fireworks in November and December",
        "info": "",
        "x": 320,
        "y": 2080,
        "wires": []
    },
    {
        "id": "7d88ea548862785e",
        "type": "function",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "Let Hobby join Eetkamer",
        "func": "msg.payload = \"Hobby\"\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 550,
        "y": 2240,
        "wires": [
            [
                "f422be3a09843ebf"
            ]
        ]
    },
    {
        "id": "f422be3a09843ebf",
        "type": "sonos-universal",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "confignode": "23f1eb745ba43647",
        "command": "player.join.group",
        "state": "",
        "stateType": "str",
        "avoidCheckPlayerAvailability": false,
        "name": "Join speaker",
        "x": 810,
        "y": 2240,
        "wires": [
            [
                "02e40c20a1fc471c"
            ]
        ]
    },
    {
        "id": "7ec2a9796a068e80",
        "type": "debug",
        "z": "8530f6c17dac3cfc",
        "g": "81f11246ff9059e3",
        "name": "debug 10",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 640,
        "y": 2440,
        "wires": []
    },
    {
        "id": "84c9c58e01fdd414",
        "type": "chronos-config",
        "name": "Chronos Config",
        "latitudeType": "num",
        "longitudeType": "num",
        "timezone": "",
        "sunPositions": []
    },
    {
        "id": "23f1eb745ba43647",
        "type": "sonos-config",
        "name": "Eetkamer",
        "serialnum": "",
        "ipaddress": "192.168.100.31"
    },
    {
        "id": "fb1efe7bdab8eadc",
        "type": "server",
        "name": "Home Assistant",
        "version": 5,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": ": ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "default",
        "statusTimeFormat": "h:m",
        "enableGlobalContextStore": false
    }
]

Started having similar problem yesterday or today. I am using Sonos mediaplayers in HA, now I can not play Sonos albums or Sonos playlist in automations, but playing Sonos radio channels works fine.

1 Like

Hi Senne,

Same here, using sonos/spotify playlists. Got the UPnP Error 800.

1 Like

Same here. I thought it was something I might have done on my firewall or HA configuration. I tried removing all the devices from my Spotify account, removing Sonos in Spotify and then re-adding them to Home Assistant, and even removing Spotify as a content provider in my Sonos app.

Nothing I’ve done has fixed the issue.

From the 2024.12 breaking changes

The Spotify audio feature sensors have been removed since Spotify removed access for them, starting 27 November.

Additionally, featured and category playlists have been removed from the Spotify media browser since Spotify deprecated the API, starting on 27 November.

https://www.home-assistant.io/blog/2024/12/04/release-202412/#backward-incompatible-changes

I am having the same problem with my automations, no node-red, just using a script that has worked for the last year started getting a upnp 800 error and failing:

action: media_player.play_media
metadata: {} 
data:
  media_content_id:https://open.spotify.com/playlist/1LS91m0a848S93HXXXXX
  media_content_type: playlist
target:
  entity_id: media_player.roam

same problem here since yesterday i have no fix until yet

Looks like there are some others experiencing the issue, here’s the GitHub issue.

1 Like

To summarize the GitHub discussion, it seems that there is a bad interim Sonos update. Force update your speakers / amps. Then force reboot them. Fixed my issues.

1 Like

Yesterday, some of my speakers where fixed. Today, all my speakers are fixed. Probably firmware update from sonos, but it’s working again