Roon app crashes frequently on iPad

Hi there,

I am evaluating Roon and am on the verge of subscribing or buying a membership.
The sound quality Roon is able to deliver is great and also the browsing through my music. But very unfortunately the iPad app has bugs and crashes.

This does not happen on every launch of the app but only after some usage. If the crash happened once the app will continue to crash on every relaunch. Only the option “Reset Roon Remote on next startup” will remediate it.

I have generated logs that indicate a null pointer exception is occurring when trying to load performer metadata.

@support could you please have a look here and forward to engineers?

12/15 13:55:59 Info: [client/root] Broker ready changed True => False
12/15 13:55:59 Info: [ui] performerdetails.load
12/15 13:56:00 Info: 
Local Time:            12/15/2021 13:56:00 +01:00
Device Serial Number:  REDACTED
Roon Version:       1.8 (build 831) stable
OS Version:            iOS 15.2
Hardware Version:      iPad8,2
Mono Version:          unknown

Application Domain:    MonoTouch
Assembly Codebase:     file:///private/var/containers/Bundle/Application/F25E6E08-2F8A-41DA-B451-F060E1249FC9/RoonMobile.app/RoonMobile.exe
Assembly Full Name:    RoonMobile, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

--[ BROOSCRIPT EXCEPTION ]-------------------------------------------

    Exception Message: Object reference not set to an instance of an object

    at ../ui/artistdetails.broo:1162 [9efe60:0628] function anon_9024
    at ../ui/artistdetails.broo:1116 [9ee684:0093] function reload
    at ../ui/artistdetails.broo:2021 [92c8ff:008f] action

--[ INNER EXCEPTION ]------------------------------------------------
   Inner Exception Source:      Roon.Client.BrooModels
   Inner Exception Type:        System.NullReferenceException
   Inner Exception Target Site: PerformerDetail.method_load
   Inner Exception Message:     Object reference not set to an instance of an object
   Inner Exception Data:        none

   --[ Inner Stack Trace ]------------
   Sooloos.Client.Models.PerformerDetail.method_load(PerformerBase perf, Action`2 cb, Action`1 replacedcb)
       Roon.Client.BrooModels.dll, N 532
   UNKNOWN
       , N 7
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       mscorlib.dll, N 239

--[ OUTER EXCEPTION ]------------------------------------------------
   Outer Exception Source:      
   Outer Exception Type:        Broo.BrooScriptException
   Outer Exception Target Site: COULD NOT GET TARGETSITE: Object reference not set to an instance of an object
   Outer Exception Message:     Exception in brooscript
   Outer Exception Data:        none

   --[ Outer Stack Trace ]------------
   UNKNOWN
       , N 7
   UIKit.UIApplication.Main(String[] args, IntPtr principal, IntPtr delegate)
       Xamarin.iOS.dll, N 47
   UIKit.UIApplication.Main(String[] args, String principalClassName, String delegateClassName)
       Xamarin.iOS.dll, N 67
   Sooloos.Application.IOSMain(String[] args)
       RoonMobileApp.dll, N 319
   RoonMobile.Application.Main(String[] args)
       RoonMobile.exe, N 27

12/15 13:56:00 Error: 
Local Time:            12/15/2021 13:56:00 +01:00
Device Serial Number:  88533A15-5DBF-44C4-A6F5-5707CA1848BD
Roon Version:       1.8 (build 831) stable
OS Version:            iOS 15.2
Hardware Version:      iPad8,2
Mono Version:          unknown

Application Domain:    MonoTouch
Assembly Codebase:     file:///private/var/containers/Bundle/Application/F25E6E08-2F8A-41DA-B451-F060E1249FC9/RoonMobile.app/RoonMobile.exe
Assembly Full Name:    RoonMobile, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

--[ BROOSCRIPT EXCEPTION ]-------------------------------------------

    Exception Message: Object reference not set to an instance of an object

    at ../ui/artistdetails.broo:1162 [9efe60:0628] function anon_9024
    at ../ui/artistdetails.broo:1116 [9ee684:0093] function reload
    at ../ui/artistdetails.broo:2021 [92c8ff:008f] action

--[ INNER EXCEPTION ]------------------------------------------------
   Inner Exception Source:      Roon.Client.BrooModels
   Inner Exception Type:        System.NullReferenceException
   Inner Exception Target Site: PerformerDetail.method_load
   Inner Exception Message:     Object reference not set to an instance of an object
   Inner Exception Data:        none

   --[ Inner Stack Trace ]------------
   Sooloos.Client.Models.PerformerDetail.method_load(PerformerBase perf, Action`2 cb, Action`1 replacedcb)
       Roon.Client.BrooModels.dll, N 532
   UNKNOWN
       , N 7
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       mscorlib.dll, N 239

--[ OUTER EXCEPTION ]------------------------------------------------
   Outer Exception Source:      
   Outer Exception Type:        Broo.BrooScriptException
   Outer Exception Target Site: COULD NOT GET TARGETSITE: Object reference not set to an instance of an object
   Outer Exception Message:     Exception in brooscript
   Outer Exception Data:        none

   --[ Outer Stack Trace ]------------
   UNKNOWN
       , N 7
   UIKit.UIApplication.Main(String[] args, IntPtr principal, IntPtr delegate)
       Xamarin.iOS.dll, N 47
   UIKit.UIApplication.Main(String[] args, String principalClassName, String delegateClassName)
       Xamarin.iOS.dll, N 67
   Sooloos.Application.IOSMain(String[] args)
       RoonMobileApp.dll, N 319
   RoonMobile.Application.Main(String[] args)
       RoonMobile.exe, N 27

Kind regards,

Thorsten

I just found out that instead of resetting the Roon mobile on iPad via “Reset Roon Remote on next starup” another remediation is to restart the roon server (core) application. Don’t know if that helps you in your investigation of this issue.

Happy to provide any logs and further info it takes to track this down. I can reproduce this error again and again on my iPad. It never happens on my Android phone or on my Mac but only iOS.

I have the Sonos Port still sitting here waiting to get back into the bay. The sound quality was underwhelming in comparison to the Allo Dac with Roon but hey Sonos just works. It never failed on me as Roon does. Please help me make my decision.

So yesterday I updated my system to the new Roon build 880. I have a good and a bad message.

The bad message: The iPad app is still crashing regularly when I use it. Needs a minute or two of browsing and switching.

The good message: It works after a restart without resetting everything.

Here is the new error message:

12/16 10:58:17 Debug: GMS: done saving nav stack
12/16 10:58:17 Trace: [client/roonbridges] [RoonBridge roonbridge @ 10.0.24.32:43199] connected
12/16 10:58:17 Trace: [rnet/RnetJsonClient] SENT {"request":"updates_subscribe"}
12/16 10:58:17 Debug: GMS: saving nav stack
12/16 10:58:17 Debug: GMS: done saving nav stack
12/16 10:58:17 Debug: unhandled selection type: 
12/16 10:58:17 Error: Exception updating widget scrollpanel(1163)
12/16 10:58:17 Info: 
Local Time:            12/16/2021 10:58:17 +01:00
Device Serial Number:  7DD21938-AEC5-4DD1-A4ED-4B53B3D9BBAA
User Id:               c9491f63-bce6-4ef3-877c-9953b6d29a97
Roon Version:       1.8 (build 880) stable
OS Version:            iPadOS 15.2
Hardware Version:      iPad8,2
Mono Version:          unknown

Application Domain:    MonoTouch
Assembly Codebase:     file:///private/var/containers/Bundle/Application/5D3EDF99-362B-4466-9136-1011BAB323D5/RoonMobile.app/RoonMobile.exe
Assembly Full Name:    RoonMobile, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

--[ BROOSCRIPT EXCEPTION ]-------------------------------------------

    Exception Message: Value cannot be null.
Parameter name: source

    at ../ui/genrebrowser.broo:148 [b898b4:0052] equation
    at ../ui/genrebrowser.broo:437 [b8be32:0061] function compute_genre_rows
    at ../ui/genrebrowser.broo:469 [b8c23c:0027] equation
    at ../ui/dynamiclist.broo:212  [b48449:0006] equation

--[ INNER EXCEPTION ]------------------------------------------------
   Inner Exception Source:      System.Core
   Inner Exception Type:        System.ArgumentNullException
   Inner Exception Target Site: OrderedEnumerable`2..ctor
   Inner Exception Message:     Value cannot be null.
Parameter name: source
   Inner Exception Data:        none

   --[ Inner Stack Trace ]------------
   System.Linq.OrderedEnumerable`2..ctor(IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer, Boolean descending, OrderedEnumerable`1 parent)
       System.Core.dll, N 396
   System.Linq.Enumerable.OrderByDescending(IEnumerable`1 source, Func`2 keySelector)
       System.Core.dll, N 63
   Sooloos.Client.RootBase.constmethod_sort_genres(IList`1 genres, String order, String direction)
       Roon.Client.BrooModels.dll, N 1435
   UNKNOWN
       , N 7
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       mscorlib.dll, N 239

--[ OUTER EXCEPTION ]------------------------------------------------
   Outer Exception Source:      
   Outer Exception Type:        Broo.BrooScriptException
   Outer Exception Target Site: COULD NOT GET TARGETSITE: Object reference not set to an instance of an object
   Outer Exception Message:     Exception in brooscript
   Outer Exception Data:        none

   --[ Outer Stack Trace ]------------
   UNKNOWN
       , N 7
   UIKit.UIApplication.Main(String[] args, String principalClassName, String delegateClassName)
       Xamarin.iOS.dll, N 95
   Sooloos.Application.IOSMain(String[] args)
       RoonMobileApp.dll, N 319
   RoonMobile.Application.Main(String[] args)
       RoonMobile.exe, N 27

12/16 10:58:17 Error: 
Local Time:            12/16/2021 10:58:17 +01:00
Device Serial Number:  7DD21938-AEC5-4DD1-A4ED-4B53B3D9BBAA
User Id:               c9491f63-bce6-4ef3-877c-9953b6d29a97
Roon Version:       1.8 (build 880) stable
OS Version:            iPadOS 15.2
Hardware Version:      iPad8,2
Mono Version:          unknown

Application Domain:    MonoTouch
Assembly Codebase:     file:///private/var/containers/Bundle/Application/5D3EDF99-362B-4466-9136-1011BAB323D5/RoonMobile.app/RoonMobile.exe
Assembly Full Name:    RoonMobile, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

--[ BROOSCRIPT EXCEPTION ]-------------------------------------------

    Exception Message: Value cannot be null.
Parameter name: source

    at ../ui/genrebrowser.broo:148 [b898b4:0052] equation
    at ../ui/genrebrowser.broo:437 [b8be32:0061] function compute_genre_rows
    at ../ui/genrebrowser.broo:469 [b8c23c:0027] equation
    at ../ui/dynamiclist.broo:212  [b48449:0006] equation

--[ INNER EXCEPTION ]------------------------------------------------
   Inner Exception Source:      System.Core
   Inner Exception Type:        System.ArgumentNullException
   Inner Exception Target Site: OrderedEnumerable`2..ctor
   Inner Exception Message:     Value cannot be null.
Parameter name: source
   Inner Exception Data:        none

   --[ Inner Stack Trace ]------------
   System.Linq.OrderedEnumerable`2..ctor(IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer, Boolean descending, OrderedEnumerable`1 parent)
       System.Core.dll, N 396
   System.Linq.Enumerable.OrderByDescending(IEnumerable`1 source, Func`2 keySelector)
       System.Core.dll, N 63
   Sooloos.Client.RootBase.constmethod_sort_genres(IList`1 genres, String order, String direction)
       Roon.Client.BrooModels.dll, N 1435
   UNKNOWN
       , N 7
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       mscorlib.dll, N 239

--[ OUTER EXCEPTION ]------------------------------------------------
   Outer Exception Source:      
   Outer Exception Type:        Broo.BrooScriptException
   Outer Exception Target Site: COULD NOT GET TARGETSITE: Object reference not set to an instance of an object
   Outer Exception Message:     Exception in brooscript
   Outer Exception Data:        none

   --[ Outer Stack Trace ]------------
   UNKNOWN
       , N 7
   UIKit.UIApplication.Main(String[] args, String principalClassName, String delegateClassName)
       Xamarin.iOS.dll, N 95
   Sooloos.Application.IOSMain(String[] args)
       RoonMobileApp.dll, N 319
   RoonMobile.Application.Main(String[] args)
       RoonMobile.exe, N 27

Silly question, but have you tried to delete the app, restart your phone and leave “reset remote” disabled?

@RBO Thanks for joining. Yes I also tried to delete the app and reinstall. That also remediates the bug.

By remediating I mean you can then work for a while with the Roon remote on the iPad until the bug surfaces again.

I can reproduce it quite well by navigating to a an artist’s page (performer info), send the iPad to sleep, open it again, navigate back and forth between Roon and other apps, eventually closing the Roon remote app completely by swiping up and then opening again. After a minute or so I will have produced the crash.

Otherwise it will occur occasionally when listening to music and it happens in those moments when you rather not want to debug IT stuff.

Unfortunately can’t help with your logs as I’m extremely “technically” challenged :sweat_smile:

It’s very strange behaviour indeed and never had it happen on my iPad.

If you were to kill all apps, power cycle and then only run Roon, does it change? Wondering if there’s another app messing with Roon.

Thanks, I will continue to try different settings and see if I can stabilize it to help the Roon @support team narrow it down. Personally I could imagine that a network glitch, a failed request, etc could be causing this.

However, a resilient client application in a distributed system should be able to handle such situations, dropped packets, unexpected response codes, etc and not crash but retry or show an error message.

That’s why I am insisting here and believe it should be handled as a bug.

Hi @Thorsten_Schafer ,

Does the issue happen when navigating to one artist in particular or regardless of the artist? Do you have any other Roon Remotes you can try to use? Does the same behavior occur there?

Hi @noris ,

I have good success reproducing this with Gregory Porter Overview page. Open the roon remote on Gregory Porter Overview. Then close the iPad app like described here:

and reopen it. If I repeat this several times I can reproduce the crash. After a first crash the app keeps crashing and crashing until I reset.

Of course this also happens during regular usage, when the iPad wakes up from sleep but only sporadically and in moments when I am sitting on the couch enjoying music and don’t want it to happen.

I can also reproduce it with other artists’ pages. But only on iPad. Mac OS Remote runs stable. Android also.

Kind regards,

Thorsten

Made a video to illustrate. Happened again, when I was listening to music tonight. Roon crashing

1 Like

I had some further thoughts about this.

The Roon core seems to store the navigation history for every client or remote. There seem to be several flaws in this process:

  1. If the navigation history, e.g. the details of an artist page, is broken for any reason, the client (remote) crashes. Eventually infinitely until a hard reset. This is not acceptable from a usability standpoint and such error should be handled gracefully.

  2. Roon seems to assume that every device, the core as well as all of the remotes, can only have one IP address.
    a) The Roon Linux server application does not support binding to only select network interfaces, as any other proper Linux daemon on the world can.
    b) Also my clients can have multiple IP adresses because I am using VPN tunnels in my network.

  3. Roon fails to support subnets correctly. I can have a Roon core in a different subnet than the remote and discover it. But roon also tries to open network connections to the router in between for whatever reason. No need as the router is ROUTING between the subnets.

I believe that the bug I have reported is caused because Roon creates multiple internal states for the same client if clients have multiple IPs or are in different subnets. This is a bit of a wild ass guess as I have not access to the code.

So I have restructured my network for Roon (epic sigh). Because I like it nevertheless for what it is. I love Sonos for it’s stability but I hate the Sonos app.

I know that features like fancy album art are more sexy than a properly working network infrastructure. Nevertheless I would like to urge you to invest some time here. If your network foundation is not solid the complete house of cards can collapse.

Kind regards,

Thorsten

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.