Track Browser: Tag focus fails when a tag is assigned to both tracks and compositions

In the Track Browser:
When a Tag is assigned to both a track and a composition the Tag Focus request for that Tag will fail / won’t finish (the :tropical_fish: stays animated in the foreground until the focus is reset, results don’t show up or are incomplete).

It took me awhile to figure out that it seems to be this combination. The log always shows something like this:

Example 1

12/22 14:12:36 Trace: [music/query] performing track query
12/22 14:12:36 Critical: scx: System.NullReferenceException: Object reference not set to an instance of an object
  at Sooloos.Broker.Music.LibraryTagWorkItem.AcceptsTrack (System.Collections.Generic.List`1[T] visited, Sooloos.Broker.Music.LibraryTrack track) [0x00006] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryExplicitTag.AcceptsTrack (System.Collections.Generic.List`1[T] visited, Sooloos.Broker.Music.LibraryTrack track) [0x0001e] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTag`1[SELFTYPE].AcceptsTrack (Sooloos.Broker.Music.LibraryTrack track) [0x0000d] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTrackMatcher+<>c__DisplayClass42_0.<Accepts>b__0 (Sooloos.Broker.Music.LibraryTag x) [0x00000] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at System.Linq.Enumerable.Any[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) [0x0002c] in <ae162b7061064bfaa55021254699ac67>:0 
  at Sooloos.Broker.Music.LibraryTrackMatcher.Accepts (Sooloos.Broker.Music.LibraryTrack track) [0x002cd] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTrackFocusQuery.Accepts (Sooloos.Broker.Music.LibraryTrack track) [0x00000] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTrackFocusQuery.Perform () [0x0002b] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Query`3[INTERNALTYPE,PUBLICTYPE,THREAD]..ctor (Sooloos.Broker.IQueryCriteria`1[CONCRETEDATATYPE] query, System.Collections.Generic.IEqualityComparer`1[T] eq) [0x00041] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryApi+<>c__DisplayClass80_0.<VirtualTrackQuery>b__0 (Sooloos.Concurrency.ClientContext clientcx) [0x00048] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Concurrency.SharedState`1+<>c__DisplayClass17_1[THREAD].<PostHigh>b__1 (System.Object _) [0x00035] in <2e97045d494f4e39be01132804d0a6af>:0 
  at Sooloos.SynchronizationContextThread._Dispatch (Sooloos.SynchronizationContextThread+SendOrPostWrapper& ret) [0x00012] in <474fc6b46f7646c587f524cda12acaf9>:0 

Example 2

12/22 13:44:23 Trace: [music/query] performing track query
12/22 13:44:23 Critical: scx: System.NullReferenceException: Object reference not set to an instance of an object
  at Sooloos.Broker.Music.LibraryTagWorkItem.AcceptsTrack (System.Collections.Generic.List`1[T] visited, Sooloos.Broker.Music.LibraryTrack track) [0x00006] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryExplicitTag.AcceptsTrack (System.Collections.Generic.List`1[T] visited, Sooloos.Broker.Music.LibraryTrack track) [0x0001e] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTag`1[SELFTYPE].AcceptsTrack (Sooloos.Broker.Music.LibraryTrack track) [0x0000d] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTrackMatcher+<>c__DisplayClass42_0.<Accepts>b__0 (Sooloos.Broker.Music.LibraryTag x) [0x00000] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at System.Linq.Enumerable.Any[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) [0x0002c] in <ae162b7061064bfaa55021254699ac67>:0 
  at Sooloos.Broker.Music.LibraryTrackMatcher.Accepts (Sooloos.Broker.Music.LibraryTrack track) [0x002cd] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTrackFocusQuery.Accepts (Sooloos.Broker.Music.LibraryTrack track) [0x00000] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryTrackFocusQuery.Perform () [0x0002b] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Query`3[INTERNALTYPE,PUBLICTYPE,THREAD]..ctor (Sooloos.Broker.IQueryCriteria`1[CONCRETEDATATYPE] query, System.Collections.Generic.IEqualityComparer`1[T] eq) [0x00041] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Broker.Music.LibraryApi+<>c__DisplayClass80_0.<VirtualTrackQuery>b__0 (Sooloos.Concurrency.ClientContext clientcx) [0x00048] in <bbda6a553eb048f1b5c5c7aa2e58a1a5>:0 
  at Sooloos.Concurrency.SharedState`1+<>c__DisplayClass17_1[THREAD].<PostHigh>b__1 (System.Object _) [0x00035] in <2e97045d494f4e39be01132804d0a6af>:0 
  at Sooloos.SynchronizationContextThread._Dispatch (Sooloos.SynchronizationContextThread+SendOrPostWrapper& ret) [0x00012] in <474fc6b46f7646c587f524cda12acaf9>:0 

@support - if you can reproduce this, would you please forward it to the devs? No need to rush, though - happy holidays come first! :slight_smile:

For reference:
Mac (Remote) and Core (ROCK): Roon 1.5 (build 363)

2 Likes

Hey @anon47919701,

Thanks for the report. Just to make sure I have some clearer reproduction steps at hand, can you please provide an example of the track/composition that you used to uncover this behavior? Does the same behavior occur with both TIDAL and Local Content or just one and not the other? Please let me know when possible and I can try to reproduce on my end. Happy Holidays to you as well!

Thanks,
Noris

Hi @noris,

first, I’ve no TIDAL so it’s only local content to play with.

As for reproducing this:

Preconditions

  • Assign a tag to composition. Any composition will do (I’ve used the first one in my classical composition listing here):

  • Assign the same tag to a track. Any track will do (again, I’ve used the first one from the track browser listing)

The problem

In Track Browser, try to focus on the tag

For me, it results in just this:


Please note: that “debug tag” came into play after I run into the problem using tags for tracks AND compositions; it’s not that I deliberately try to break things… :sunglasses:

Hello @anon47919701,

Thanks for providing those reproduction steps, they have been very helpful and I have been able to reproduce this issue on my end.

I have gone ahead and filed a ticket with our QA team regarding this behavior and they will pass the necessary details to the dev team (although I cannot comment on a timeline of when this will reach their queue).

Thanks again for the report :sunglasses:

– Noris

1 Like