navidrome / navidrome

🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
https://www.navidrome.org
GNU General Public License v3.0
10.16k stars 783 forks source link

[Bug]: No catalogue sync with clementine since 0.50.1 #2924

Open stonie08 opened 1 month ago

stonie08 commented 1 month ago

I confirm that:

Version

0.51.1

Current Behavior

The player Clementine can't fetch the available music on the navidrome server via the subsonic API anymore. It will say "Fetching Subsonic Library" briefly then just not do anything. Music that has been shown as available before will be removed. Navidrome's log output will not show anything even at "trace" debug level. Files that were added to an active playlist in a previous version play without any issues, but I can't add any new because there aren't any available. If I downgrade to 0.49.2, 0.49.3 or 0.50.0 it works without any problems. Upgrading to 0.50.1 and refreshing the library will remove any items from the list.

Expected Behavior

Refreshing the library in a subsonic compatible player should refresh the library and show the available music

Steps To Reproduce

  1. Install Clementine
  2. Go to Tools -> Preferences -> Subsonic
  3. Configure demo server: https://demo.navidrome.org user: demo, password: demo and press login, then OK
  4. In the left menu -> Internet -> right click on Subsonic -> "Refresh catalogue"
  5. Observe that nothing happens. Retry with 0.50.1 or older Navidrome installation which will work fine.

Environment

- OS: Debian Bookworm
- Client: Clementine 1.3.1

How Navidrome is installed?

Binary (from downloads page)

Configuration

MusicFolder = "/home/library/Music_combined"
ND_LOGLEVEL="trace"
EnableTranscodingConfig = false
EnableDownloads = true
ImageCacheSize = 0
TranscodingCacheSize = 0
BaseUrl = "/nav"
AutoImportPlaylists = false
EnableSharing = true
EnableExternalServices = false

Relevant log output

Doesn't cause any log output at debug or trace level

Anything else?

No response

Code of Conduct

doubled1 commented 1 month ago

I'm seeing this behaviour as well

Empty library with Clementine from Debian Bookworm repo (Version 1.4 rc2) and Navidrome v0.51.1.

Authentication must be correct and something must be working. I can add tracks from a smart playlist even with no library contents.

Downgrading to 0.50.1 has a library again.

deluan commented 1 month ago

Seems that the new OpenSubsonic extensions, released in 0.50.1, are breaking Clementine. This is not something easy to fix on Navidrome side. I think you should open an issue with the Clementine project. They don't need to implement the new extensions if they don't want/don't have the bandwidth to, but they should at least ignore the extensions in the responses.

Most of older Subsonic clients (Jamstash, DSub, Ultrasonic, substreamer, etc..), even the ones that are not maintained anymore are working properly with the new extensions, that were introduced as non-breaking changes. If Clementine is breaking it's probably because it has a very strict validation of the responses sent by the server.

Note that this is not an issue with Navidrome only. Most modern Subsonic-compatible servers are implementing the OpenSubsonic extensions as well, and I bet Clementine will also break with these other servers.

stonie08 commented 1 month ago

Thanks for the comprehensive reply! I also opened an issue in the clementine repo

deluan commented 1 month ago

Does Clementine provide any logs?

stonie08 commented 1 month ago

As far as I could tell only if it's built without the Release CMake flag: https://github.com/clementine-player/Clementine/issues/4988

There's supposed to be output if you start clementine from the commandline (https://github.com/clementine-player/Clementine/issues/7131). I just tried that to see if there's any useful information, but it hardly logs anything to the console and nothing related to the failed parsing of the catalogue.