Smart Playlist Comment "is not" filter fails

Issue description:

A Smart Playlist with an “is not” filter on Comment does not show any songs, while with the same playlist, switching “is not” to “is”, shows songs with a Comment matching the value. “contains” also works, and “does not contain” does not work.

My collection has one song with a test comment of “testtest123”. AFAIK, no other songs have a Comment ID3v2 value at all. My guess is that this has something to do with SQL comparisons to NULL values always returning false, but I have not tested putting blank comments on other songs yet.


Upload description: Zach Callear

Additional information:

I’m using the latest Navidrome image via Docker as my media provider.

Reproduction steps:

(already described reproduction in detail)

Media provider:




I put a second comment on a different song. Rather than using a blank string, I used “other” as a more clear test. Indeed, now my Comment “is not” “testtest123” filter shows the song with “other”, and vice versa. That leads me closer to the NULL comparison conclusion, even though I obviously don’t know your code.

Having dummy comments on everything else could suffice as a workaround.

Note that my main purpose in this is to be able to filter out things in my music collection that are not “normal” music, so-to-speak, like maybe Christmas songs, collections of popular Billboard songs, or music I keep for another person but don’t want to listen to regularly, for example. Some of that could be done with Genre, Album Artist, Album, etc., filtering, but that could be cumbersome if used in multiple Smart Playlists also. Normally I would use file path filters for this, but Navidrome and LMS don’t expose them, and I found Gonic to be inferior in other ways despite exposing file paths.

Yes it’s probably the null value, I do not have a special case for comment so it’s not handled I’ll fix.

For the record Navidrome support real path you can enable it per client in the server interface.

LMS support multiple libraries now so maybe there’s a flag too to return the real path.
@itm ?

1 Like

Awesome. I’ll check it out. I would love to have the real path.

Real paths are not exposed by lms for now, I planned to change this when adding browsing by directory.

1 Like

Offline cache and playback cache in Symfonium is all based on filenames.

Would be nice to have this as option to keep existing value for existing user and they can toggle it when understanding the impact. And enabled for fresh installs.