Cannot cast Plex media to DLNA or Chromecast

Issue description:

I am unable to cast to any Chromecast or DLNA endpoint from Plex.
Local playback in Symfonium app works fine, but when I cast, it doesn’t play.
Phone , Plex server and the clients ( a few wiim devices and chromecast audios ) are all on the same network.

Logs:

Upload description: taps ( uploaded via the app )

Additional information:

 

 

Reproduction steps:

 

 

Media provider:

Plex

Screenshots:

     

There’s no attempts to play on UPnP device in the logs.

For the Chromecast the playback commands and everything works but then the Chromecast seems to have issues loading the data from Plex.
Check Plex logs to try to figure out why.

You can usually workaround that by enabling proxy mode in Symfonium on the renderer setting.

I’ll upload another log file with the UPnP device attempt, which also fails.
I would really want to avoid using the proxy mode.
Casting to the chromecasts from plex / plexamp / bubbleupnp works fine.
thanks, I’ll also check the plex logs.

i’ve uploaded the updated log file with the upnp attempts

This is the exact same thing:

Everything from Symfonium side works correctly, the playback is correctly started then those device have issues communicating with Plex.
This is out of Symfonium control, either certificate errors, or network errors, dns problems. I have no real way to know, you can check Plex logs to see what happens. Either the device can’t reach plex and they will be empty and it’s network/dns else it will say why.

If casting works with proxy mode, and works then casting local files to those devices (It probably will) then this confirms the issue is outside of the app.

2025-03-07 09:03:39.517 Verbose UPnPRenderer  Generated metadata for audio/flac/2bfad41c-dd9d-4ccc-8d3e-5f653bbedbc3: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:sec="http://www.sec.co.kr/" xmlns:dc="http://purl.org/dc/elements/1.1/"><item restricted="1" id="2bfad41c-dd9d-4ccc-8d3e-5f653bbedbc3" parentID="0"><upnp:album>Inner</upnp:album><upnp:class>object.item.audioItem.musicTrack</upnp:class><upnp:genre>Electronic</upnp:genre><upnp:artist>Ocoeur</upnp:artist><res duration="00:04:43" protocolInfo="http-get:*:audio/flac:DLNA.ORG_PN=FLAC;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000">https://192-168-30-xxx.plex.direct:32400/library/parts/64255/1737531381/file.flac?X-Plex-Token=REDACTED</res><upnp:originalTrackNumber>1</upnp:originalTrackNumber><upnp:albumArtURI>http://192.168.30.25:33689/3db8d3cff9f8596cdf3329333e42b236/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F0%2F03C4AC91CF0F2B942F761EFB051AABE7.jpg</upnp:albumArtURI><dc:title>Inner</dc:title></item></DIDL-Lite>
2025-03-07 09:03:39.651 Verbose UPnPRenderer  Sending play command
2025-03-07 09:03:39.692 Verbose UPnPRenderer  Play success
2025-03-06 23:19:54.707 Verbose ChromecastRenderer  Starting playback of: https://192-168-30-ddd.plex.direct:32400/library/parts/38867/1474226354/file.flac?download=1&X-Plex-Token=REDACTED (audio/flac) [0-false]
2025-03-06 23:19:54.807 Verbose ChromecastRenderer  onStatusUpdated: {"mediaSessionId":1,"playerState":"LOADING","playbackRate":1,"currentTime":0,"supportedMediaCommands":12303,"volume":{"level":1,"muted":false},"shuffle":false,"media":{"contentId":"https:\/\/192-168-30-ddd.plex.direct:32400\/library\/parts\/38867\/1474226354\/file.flac?download=1&X-Plex-Token=REDACTED","streamType":"BUFFERED","contentType":"audio\/flac","metadata":{"metadataType":3,"images":[{"url":"http:\/\/192.168.30.25:38485\/58e48dc9da46f113f29b632555bdd64\/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F8%2F8AF25F71711371187A18AFA8F65C2B3D.jpg","width":0,"height":0},{"url":"http:\/\/192.168.30.25:38485\/58e48dc9da46f113f29b632555bdd64\/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F8%2F8AF25F71711371187A18AFA8F65C2B3D.jpg","width":0,"height":0}],"title":"DreiUndZwanzig","artist":"Ewake","albumName":"Pote 1","albumArtist":"Various Artists","trackNumber":7,"discNumber":1},"duration":null},"currentItemId":1,"queueData":{"repeatMode":"REPEAT_OFF","startIndex":0,"startTime":0,"shuffle":false},"repeatMode":"REPEAT_OFF"} - 5 - 0 - false
2025-03-06 23:19:54.812 Verbose ChromecastRenderer  Playback started successfully (false)
2025-03-06 23:19:55.951 Verbose ChromecastRenderer  onStatusUpdated: {"mediaSessionId":1,"playerState":"LOADING","playbackRate":1,"currentTime":0,"supportedMediaCommands":12303,"volume":{"level":1,"muted":false},"shuffle":false,"media":{"contentId":"https:\/\/192-168-30-xxx.plex.direct:32400\/library\/parts\/38867\/1474226354\/file.flac?download=1&X-Plex-Token=REDACTED","streamType":"BUFFERED","contentType":"audio\/flac","metadata":{"metadataType":3,"images":[{"url":"http:\/\/192.168.30.25:38485\/58e48dc9da46f113f29b632555bdd64\/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F8%2F8AF25F71711371187A18AFA8F65C2B3D.jpg","width":0,"height":0},{"url":"http:\/\/192.168.30.25:38485\/58e48dc9da46f113f29b632555bdd64\/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F8%2F8AF25F71711371187A18AFA8F65C2B3D.jpg","width":0,"height":0}],"title":"DreiUndZwanzig","artist":"Ewake","albumName":"Pote 1","albumArtist":"Various Artists","trackNumber":7,"discNumber":1},"duration":null},"currentItemId":1,"loadingItemId":2,"queueData":{"repeatMode":"REPEAT_OFF","startIndex":0,"startTime":0,"shuffle":false},"repeatMode":"REPEAT_OFF"} - 5 - 0 - true
2025-03-06 23:19:56.162 Verbose ChromecastRenderer  onStatusUpdated: {"mediaSessionId":1,"playerState":"IDLE","idleReason":"ERROR","playbackRate":1,"currentTime":0,"supportedMediaCommands":12303,"volume":{"level":1,"muted":false},"shuffle":false,"media":{"contentId":"https:\/\/192-168-30-xxx.plex.direct:32400\/library\/parts\/38867\/1474226354\/file.flac?download=1&X-Plex-Token=REDACTED","streamType":"BUFFERED","contentType":"audio\/flac","metadata":{"metadataType":3,"images":[{"url":"http:\/\/192.168.30.25:38485\/58e48dc9da46f113f29b632555bdd64\/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F8%2F8AF25F71711371187A18AFA8F65C2B3D.jpg","width":0,"height":0},{"url":"http:\/\/192.168.30.25:38485\/58e48dc9da46f113f29b632555bdd64\/%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fapp.symfonik.music.player%2Fcache%2Fimages%2F8%2F8AF25F71711371187A18AFA8F65C2B3D.jpg","width":0,"height":0}],"title":"DreiUndZwanzig","artist":"Ewake","albumName":"Pote 1","albumArtist":"Various Artists","trackNumber":7,"discNumber":1},"duration":null},"queueData":{"repeatMode":"REPEAT_OFF","startIndex":0,"startTime":0,"shuffle":false},"repeatMode":"REPEAT_OFF"} - 1 - 4 - true

Looking at the logs from Plex server, it is related to authentication and that I have the IP of the mobile phone running Symfonium as a whitelisted IP in Plex to be allowed without auth ( in case there’s an internet outage so I can still access Plex ).
When I removed the phone’s IP from the white list, it started to work.

Could this be something related to how Symfonium handles authentication? As so far I haven’t had this issue with other clients like Plex,Plexamp,BubbleUpnp or Wiim Home app casting from the same phone to the same endpoints.

You can’t compare oranges and apples and since I do not have all the details about your Plex and Symfonium settings it’s hard to know what happens.

In the logs there’s a token that is given by Plex server, if that token is limited to the phone then it’s something that triggers this, probably the whitelist but it should not have any impacts.

Properly describe your Plex configuration and user type + the full Symfonium side configuration to see if I can reproduce and workaround.

The Plex server v1.41.4.9463 is running on Ubuntu 22.04 , Symfonium is running on a Pixel 8 and the target device is a WiiM Pro streamer ( but tried it with standalone chromecast audio(s) too ) .
In the Plex server settings, I’ve added the IP address of my phone to “List of IP addresses and networks that are allowed without auth” . All devices are on the same subnet. Is there any other detail about the setup you’d be interested in ?

I’ve also uploaded the relevat logs Plex server using https://upload.symfonium.app , it seems that the token is not used as the device is allowed without auth ( authenticating user as guest ) and then the request from the streamer gets error 401 as it doesn’t have the token.

thank you

I need the Symfonium settings, how did you add the host, via web oauth, via plex.tv, direct connection to plex by skipping first step.

In the logs there is a token and the token is properly passed, my guess is more that you first added things normally without the whitelist. Then added the whitelist, and then the token expired but Symfonium is not made aware since the server ignores it and so can’t refresh it.

I added the IP to the whitelist years ago, and haven’t touched it until now to test it without it.
When i installed Symfonium, when adding the plex host it directed me to the app.plex.tv webpage where i signed in. I’ve also tried to go to the symfonium plex media provider settings / authentication / sign-in to re-authenticate but the results were the same.

The reason i thought the token wasn’t passed are these lines

Mar 07, 2025 09:21:36.776 [138384242649912] DEBUG - Request: [192.168.30.40:46252 (Subnet)] GET /library/parts/64256/1737531378/file.flac (12 live) #71f TLS Signed-in Token () (range: bytes=0-) 
Mar 07, 2025 09:21:36.776 [138384242649912] DEBUG - Completed: [192.168.30.40:46252] 401 GET /library/parts/64256/1737531378/file.flac (12 live) #71f TLS 0ms 268 bytes (range: bytes=0-) 

Where the is nothing in the brackets after Token ()
But in the attempt after the IP was removed from the whitelist , i see

Mar 07, 2025 12:34:21.426 [138384183929656] DEBUG - Request: [192.168.30.40:38949 (Subnet)] GET /library/parts/64255/1737531381/file.flac?download=1 (14 live) #69a4 TLS Signed-in Token (TAPS) (Google Pixel 8) (range: bytes=327680-)

So yes it’s more or less normal, logging in via Plex.tv generate expiring tokens that needs refresh, because of the whitelist they don’t return errors, are not refreshed and so can’t be used to cast, but Symfonium have no way to know.

You must whitelist the receiver devices too for this setup to work.