Skip to content

fix(subsonic): play flow and playlist songs outside the Library in Music Assistant - #1874

Merged
lklynet merged 1 commit into
mainfrom
fix/subsonic-playlist-song-parent
Nov 13, 2026
Merged

lklynet merged 1 commit into
mainfrom
fix/subsonic-playlist-song-parent

Conversation

@lklynet

@lklynet lklynet commented Nov 13, 2026

Copy link
Copy Markdown
Owner

Flow and playlist songs that aren't in the Library got skipped in Music Assistant. They reported parent: flow:<id> (or shared:<id>), MA looks that up with getAlbum, and getAlbum only knows albums, so it answered "not found" and MA dropped the track. Fixes #1745.

Songs now only point at an album that exists:

  • Playlist songs that match a Library track keep that track's real album as parent, the same as getSong returns for that id.
  • Playlist songs outside the Library leave out parent and albumId. The Subsonic spec makes parent optional, and MA plays a track with no album id.
  • Library songs with no album no longer get the made-up album:unknown parent.

Proof: two new assertions in the Subsonic integration tests fail on main and pass here; pnpm run check, pnpm test, and pnpm run test:integration pass.

Reviewed with sol-loop: 1 round with gpt-6.1-sol. Sol verdict: approved

Created with Claude Opus 5.5 in Claude Code.

@github-actions github-actions Bot added bug Something is broken or behaving incorrectly. size:S 10-29 changed lines. labels Nov 13, 2026
@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Performance: Nothing is slower than main.

50,336 tracks, 2 alternating rounds per side, lower quartiles.

main this PR change queries
app shell 2.5 ms 2.5 ms -2% 13
library home 78.1 ms 80.9 ms +4% 121
library albums 12.4 ms 12.8 ms +3% 20
library albums, last page 18.2 ms 17.9 ms -1% 20
library albums, recently added 31.9 ms 31.8 ms 0% 20
library artists 12.4 ms 12.0 ms -3% 12
library tracks 5.7 ms 5.6 ms -1% 21
library genres 1.5 ms 1.4 ms -6% 4
library genre filter 14.3 ms 14.1 ms -2% 20
library status filter 29.3 ms 28.7 ms -2% 32
library filter 15.7 ms 15.8 ms +1% 20
artist page 10.5 ms 10.4 ms -1% 57
album page 2.4 ms 2.3 ms 0% 24
favorites 28.2 ms 28.1 ms 0% 22
search 15.2 ms 15.2 ms 0% 21
discover recently added 6.2 ms 6.0 ms -3% 28
discover releases 2.5 ms 2.4 ms -3% 9
releases page 6.9 ms 6.7 ms -2% 27
discover artist 11.5 ms 11.3 ms -1% 58
discover album 1.0 ms 1.0 ms -2% 3
discover album tracks 3.1 ms 3.1 ms 0% 8
discover album editions 1.6 ms 1.5 ms -7% 4
discover search 1.0 ms 1.0 ms +1% 3
similar artists 1.2 ms 1.2 ms +2% 6
playlists 14.2 ms 14.2 ms -1% 19
activity queue 36.3 ms 31.1 ms -14% 12
listening history 1.1 ms 1.0 ms -6% 4
subsonic getArtists 14.0 ms 14.4 ms +3% 9
subsonic getAlbumList2 69.1 ms 69.6 ms +1% 43
subsonic getArtist 3.5 ms 3.5 ms 0% 15
subsonic getAlbum 2.3 ms 2.2 ms -5% 14
subsonic search3 16.0 ms 16.2 ms +1% 22
subsonic getStarred2 23.7 ms 23.6 ms 0% 15
subsonic getRandomSongs 3.4 ms 3.4 ms -1% 15
subsonic getGenres 1.1 ms 1.1 ms -2% 3
subsonic getSongsByGenre 28.0 ms 28.0 ms 0% 14
subsonic playlists 30.0 ms 28.7 ms -4% 49
album match 1.3 ms 1.3 ms +1% 4
track match 1.2 ms 1.2 ms +3% 5
artist match 1.0 ms 1.0 ms 0% 4
subsonic edit playlist 131 ms 123 ms -6% 964
server startup 761 ms 773 ms +2%
server memory at startup 172.9 MiB 172.3 MiB 0%
initial JS and CSS, gzip 283.5 KiB 283.5 KiB 0%

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Preview image: ghcr.io/lklynet/aurral:pr-1874

Built from pr.1874+5dbf72a. Each push replaces it.

docker pull ghcr.io/lklynet/aurral:pr-1874

Back up your Aurral config, point your compose service at this image, then docker compose pull aurral && docker compose up -d aurral. Switch back to your usual tag when you're done.

@lklynet
lklynet force-pushed the fix/subsonic-playlist-song-parent branch from 5d6ea7f to 5dbf72a Compare November 13, 2026 17:09
@lklynet
lklynet merged commit c6941bb into main Nov 13, 2026
15 checks passed
@lklynet
lklynet deleted the fix/subsonic-playlist-song-parent branch November 13, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something is broken or behaving incorrectly. size:S 10-29 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Subsonic: flow/playlist songs not in the library are unplayable in Music Assistant (getAlbum on their parent returns 70)

1 participant