Playlist Sync Error

Issue description:

Hello,

Symfonium Version 13.0.0a (Android 15)
Navidrome Version 0.55.2 (hosted using pikapods)

I am encountering an issue where I can’t sync or push any updates from my playlists to the server. importing playlists works fine but pushing the update always gives me “Error during sync. Contact support if this keep happening” even if I haven’t made any changes.

From reading the debug log and what little I understand there seems to be an issue with the playlistid parameter. the log says it’s missing but if it’s missing or malformed or what but it’s just not working. I have about 52.75 GB of music downloaded to my phone so I’d really rather not reinstall or clear storage just for it not to work.

The only thing I redacted from the logs was my DNS address.

Logs:

Upload description: bleelblep

Additional information:

 

 

Reproduction steps:

 
Import a playlist from navidrome and then sync it to provider with no changes.

Or try syncing an existing playlist and that also fails.
 

Media provider:

Subsonic

Screenshots:

     

1 Like

This is a duplicate of a couple, your proxy changes the headers for whatever reasons and mixes the content-type leading to Navidrome inability to understand the parameters.

@deluan since this happens relatively often is there a way to do something about it? Like detecting the body content or support another header I could pass so that you still parse the body ?

1 Like

thanks for the quick reply. Is there anything I can do on my end to mitigate this issue or is it a waiting game now.

Would be nice that you find out why the proxy changes the header then fix and write back the fix here :slight_smile:

If Navidrome makes a change it’s a workaround for your proxy, they are allowed to only accept the body with the proper content type.

I reached out to support and got the following message.

“We use Caddy as our reverse proxy, configured for transparent operation, meaning it shouldn’t alter headers like Content-Type”

after sending the logs from navidrome this is what they said

'Thanks for providing those logs, they’re very helpful!

Looking at the log entries, I see a specific error message for the updatePlaylist.view request:

time=“2025-05-27T15:43:17Z” level=warning msg=“API: Failed response” endpoint=/rest/updatePlaylist.view error=10 message=“missing parameter: ‘playlistId’” requestId=dba56046ca06/baTn770lc4-000017

This error, “missing parameter: ‘playlistId’”, is coming directly from Navidrome. It indicates that the playlistIdparameter, which Navidrome expects for updatePlaylist.view, was simply not present in the request sent to Navidrome.

If you look at the URL for that specific request in the log:

HTTP: GET http://redacted.pikapod.net/rest/updatePlaylist.view?u=redacted&p=[REDACTED]&v=1.13.0&c=Symfonium&f=json

You’ll see that playlistId (or id) is indeed missing from the query parameters, unlike the getCoverArt.view and getPlaylist.view calls which successfully include an id.

This suggests the issue is not with our Caddy proxy altering headers or mixing content types, but rather that the Symfonium app itself is not sending the required playlistId parameter for this specific updatePlaylist.view request."

This is wrong …

Symfonium sends a POST with a body and content type application/x-www-form-urlencoded

They transform that to GET and drop the body …

I apologize, I’m just sending what they wrote. I can confirm however I’m able to add songs to playlists using other third party apps without any issue. specifically chora and tempo.

using those apps I can add songs to the playlist and the changes happen on navidrome. I don’t know if that helps or anything.

Send them what I just told you.

The other apps do not use the post version that allows handling large playlist without url size limits.

Navidrome support the httpPost Open subsonic extension specially to expose that this is supported and the proper way to do.

You can easily test Navidrome without that proxy and see that it will perfectly work.

Navidrome is fully supported in all it’s features.

Edit: The full details of the query from the logs:

2025-05-28 02:05:13.419 Verbose SubsonicLogger  --> [215] POST http://xxxxxx.pikapod.net/rest/updatePlaylist.view?u=REDACTED&p=REDACTED&v=1.13.0&c=Symfonium&f=json (632-byte body)
2025-05-28 02:05:13.419 Verbose SubsonicLogger  --> [215] playlistId=OFeCNZhqY5DiTI3ammOY2y&songIndexToRemove=0&songIndexToRemove=1&songIndexToRemove=2&songIndexToRemove=3&songIndexToRemove=4&songIndexToRemove=5&songIndexToRemove=6&songIndexToRemove=7&songIndexToRemove=8&songIndexToRemove=9&songIndexToRemove=10&songIndexToRemove=11&songIndexToRemove=12&songIndexToRemove=13&songIndexToRemove=14&songIndexToRemove=15&songIndexToRemove=16&songIndexToRemove=17&songIndexToRemove=18&songIndexToRemove=19&songIndexToRemove=20&songIndexToRemove=21&songIndexToRemove=22&songIndexToRemove=23&songIndexToRemove=24&songIndexToRemove=25&songIndexToRemove=26&songIndexToRemove=27&songIndexToRemove=28
2025-05-28 02:05:13.419 Verbose SubsonicLogger  --> [215] END POST (632-byte body)
2025-05-28 02:05:14.229 Verbose SubsonicLogger  <-- [215] 200 https://xxxxxx.pikapod.net/rest/updatePlaylist.view?u=REDACTED&p=REDACTED&v=1.13.0&c=Symfonium&f=json (808ms, unknown-length body)
2025-05-28 02:05:14.231 Verbose SubsonicLogger  <-- [215] {"subsonic-response":{"status":"failed","version":"1.16.1","type":"navidrome","serverVersion":"0.55.2 (a057a680)","openSubsonic":true,"error":{"code":10,"message":"missing parameter: 'playlistId'"}}}
2025-05-28 02:05:14.231 Verbose SubsonicLogger  <-- [215] END HTTP (810ms, 199-byte body)

As you can see this is a post with a body and obviously the playlistId parameter :wink: not a get that reach Navidrome, the only thing in the middle to change this is the proxy.

I’m so sorry for all this mess because I think I’m the one to blame for all this. they replied with

"The issue is likely that Symfonium is sending the request via HTTP, and our proxy is redirecting it to HTTPS. This redirect is likely what causes the POST body to be lost by the client.

Please ensure Symfonium is configured to connect using https:// directly."

switching from port 80 to 443 does the trick and I’m beating myself up over it. I’m so sorry for causing you stress and stuff. I’ll try mark this as closed

Well at least we know why for the future other reports.

1 Like

Hello
Maybe it is why..
I cant sync (export to navidrome) my playlists created by Symfonium… only the ones created from Navidrome are syncable.

So I try

locked or not playlists..

I not have the sync button every time :



The seconde one created from the Navi serveur

Thanks for all
am so loving love the app
tell me if I can better debug/report

Completely unrelated :slight_smile:

Open your own issue with details and logs but the playlists are not created correctly.

1 Like