[solved] MusicD Remote - album displays no tracks to play

@MusicD I’m creating a new post to separate defect reports from general discussions about the extension.

Edit: Roon 2.71 build 1674 early access broke extensions.

Solution: See my reply below in comment #9

Summary

Description

An album is presented by the extension, but when selected, there are no tracks to play.

About extension

Version: MusicD Remote 1.6.38

Deployment method: Docker

Host environment

Roon Server version: 2.71 (build 1674) earlyaccess

Roon host: Mac Sequoia 15.7.7

docker version

Client:
 Version:           29.1.4-rd
 API version:       1.52
 Go version:        go1.25.5
 Git commit:        3c6914c
 Built:             Fri Jan  9 20:45:08 2026
 OS/Arch:           darwin/amd64
 Context:           rancher-desktop

Server:
 Engine:
  Version:          29.1.3
  API version:      1.52 (minimum version 1.41)
  Go version:       go1.25.5
  Git commit:       fbf3ed25f893e6ce21336f1101590e40a13934f4
  Built:            Sun Dec 14 05:31:58 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v2.2.0
  GitCommit:        1c4457e00facac03ce1d75f7b6777a7a851e5c41
 runc:
  Version:          1.4.0
  GitCommit:        8bd78a9977e604c4d5f67a7415d7b8b8c109cdc4
 docker-init:
  Version:          0.19.0
  GitCommit:      

Steps to reproduce

Debug information

The following request endpoints and headers are sent to the extension server

{
    "year": "2025",
    "album": {
        "description": null,
        "year": "2025",
        "label": "Young",
        "url": "https://www.qobuz.com/us-en/album/ocean-steppin-john-glacier-sampha/aehfcu6hvbdfa",
        "source": "Qobuz",
        "score": null,
        "isBestNewMusic": false
    },
    "artist": null
}

Zone information, current playing song, volume level, are returned from Roon server and visible in the extension UI.

The currently playing song can be stopped/started from within the extension UI.

I’m a few dev builds on from the latest version and tested based on that and I see the track being available.

I’ll rollback to test.

v1.6.38

Hmmm… I’ll continue local troubleshooting. Thanks for testing with build 38 and confirming things are working as expected.

1 Like

Also to confirm

You may see albums under the ‘not played in 6 months’ that you have played within the last week etc. This is Roon’s API limitation.

After 6 months you’ll see a greater benefit from this section. A ploy to keep you using it :wink:

I’m working on adding better debug reporting amongst a few other things. There will be a fair jump from build 38 to the next build.

Just out of curiosity @Dadoo are you on the latest EA Roon build?

I fully remove the container and data folder. Deleted Roon and installed the latest EA. Reinstalled my extension and I get the same as you. Another user has reported the same.

Roon API is bust for extensions pulling from Roon. The TV:Remote app on my Apple TV doesn’t work.

Playing an Album in Roon remote will show playing in the extension because Roon API is sending it.

But my extension isn’t getting accessing Roon

Yes, running the latest EA Roon build (2.71 1674).

I see this event in my Roon logs after clicking an album to play in the extension UI:

System.ArgumentNullException: shared-query acquire must be attributed to a connection owner (Parameter ‘owner’)

That was taken from the below…

07/14 16:33:36 Trace: [roonapi] [apiclient 192.168.205.2:38468] GOT com.roonlabs.browse:1/browse {"hierarchy":"albums","pop_all":true,"multi_session_key":"rra_s9"} 
07/14 16:33:36 Trace: [music/query] performing album query 
07/14 16:33:36 Critical: scx: System.ArgumentNullException: shared-query acquire must be attributed to a connection owner (Parameter 'owner') 
   at Sooloos.Broker.Query`3._AttributeTo(Object owner) 
   at Sooloos.Broker.Query`3.AttributeCreatingRef(Object owner) 
   at Sooloos.Broker.Music.LibraryApi._SharedOrNew[CONCRETEDATATYPE,DATATYPE](Byte[] sharekey, Object owner, Func`1 create) 
   at Sooloos.Broker.Music.LibraryApi._FinishQuery[CONCRETEDATATYPE,DATATYPE](Func`1 makecriteria, ResultCallback`1 cb_result, ClientContext clientcx, IEqualityComparer`1 eq, Byte[] sharekey) 
   at Sooloos.Broker.Music.LibraryApi.<>c__DisplayClass87_0.<AlbumQuery>b__0(ClientContext clientcx) 
   at Sooloos.SynchronizationContextThread._Dispatch(SendOrPostWrapper& ret) 

I wonder if Sooloos.Broker.Query.AttributeTo(Object owner) failed to get an owner object from ClientContext due to JSON parsing oddity repoerted after today’s EA release:

I also see the error in my Roon logs:

07/14 12:39:46 Debug: JsonDecodeStrict failed: ‘0x7F’ is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.

Going to try and downgrade to the previous Roon version and see what happens with the interaction between Server and Extension.

Reverting to Roon Server version 2.70 (build 1670) earlyaccess fixes the issue.

07/01 15:35:27 Debug: [base/updater] Update response: updateurl=http://download.roonlabs.net/updates/earlyaccess/Roon_207001670.dmg

Same here. All works.

Roon is currently importing my library again. So slow.

Next time I’ll preserve databases/backups

v1.6.42 is being pushed out now
It has additional logging

It’s enabled by default

v1.6.48

Prior to the latest production release of Roon and the EA1674 I felt the extension was working well. Then behaviour changed and I feel like I’ve been tripped up by changes Roon has made.

6 builds on from the last update which was because EA1674 caused a “few issues”. This is me firefighting and not my preferred way forward.

This will be the last update for several weeks. Family vacation from Friday.

Fixed

• Tapping an album no longer throws “the library just changed — close and reopen it.” The extension used to find albums by their position in Roon’s list, and adding music reshuffles every position. Now, if a saved position is stale, it looks the album up live by name through Roon’s own search (a single lookup, not a re-scan) — so an out-of-date snapshot never blocks opening or playing. (The v1.6.47 attempt at this was broken — it forgot to pass a “zone” to Roon’s search, which Roon requires, and its title-matching was too strict; v1.6.48 fixes both.) (NOTE: May not work :face_with_peeking_eye:)

• The extension stops fighting Roon while it’s importing. Earlier it would re-scan the whole library repeatedly on a 5-minute timer, hammering an already-busy Core. That’s gone.

Changed / Added

• New “stable snapshot” model. Roon owns the library; the extension scans it once, then only re-checks every 12 hours or when you press Rescan — and never scans while Roon is adding music. It detects an active import cheaply (reads the album count, waits a few seconds, reads again — a moving count means Roon’s busy).
“Rescan library” button added to the side menu. It rebuilds the snapshot on demand, but politely refuses (“Roon is still adding albums — try again shortly”) if an import is in progress.

• Better logging & diagnostics (from the earlier observability work, still in play): timestamped logs, Roon API call traces with timings, and the new live-search path logs each step ([album:search] …) so any remaining miss is a one-line diagnosis in docker logs.

Teaser: I’m working on another Roon extension as a separate entity. If it works well I’ll think about integrating it. Think shortcuts.

Hello @MusicD,
Thanks for this version.
Just a quick question: are you no longer on version E.A. 1674?
If so, how did you manage to change your server version?
Have a great vacation. :slightly_smiling_face:

I run DietPi on my server, an I uninstalled Roon, then reinstalled Roon, but chose the production build instead of early access.

If you’re running Roon on Windows, I believe you’d have to do the same. I cannot confirm if a backup from B1674 will work on the latest prod build.

@Vova mentioned somewhere they are hoping to put it a hotfix update today or tomorrow. This may be for this issue or another issue. I’m not sure.

Thank you :folded_hands:

@MusicD, I am using Roon Optimized Core Kit Version 1.0 (build 257) Early Access on an Intel NUC7I7BNH barebone PC. I’m going to wait for the next Roon Server Software update and skip this Version 2.71 (build 1674) Early Access release, as it prevents me from using my favorite extensions: “TV:Remote” and “MusicD Remote”.

Being on Rock is easy to roll between EA and production builds.

Follow the How to leave section

Moving RoonOS (Nucleus / ROCK) Roon Server back to production

  1. Download the instruction file and save it on your computer. Do not modify the name, extension, or content of this file.

  2. Navigate to the /Data/Reinstall directory on your Nucleus / ROCK.

  3. Copy the instruction file that you downloaded into the Reinstall directory.

  4. Visit the RoonOS admin page and click on the “Reinstall” button.

1 Like

@MusicD It works again thanks to version 1675.

1 Like