Crash when clicking artists on home page[Resolved - B763]

Roon 1.8 crashes on macOS 11.2.1 and iPadOS 14.4 when clicking “ARTISTS” on the Home Page.
Core Machine is a MacBook Pro and RoonServer version is 1.8 (build 753).
There could be something wrong with the character encoding according to the log:

Exception Source: mscorlib
Exception Type: System.ArgumentException
Exception Target Site: Char.ConvertToUtf32
Exception Message: Found a high surrogate char without a following low surrogate at index: 0. The input may not be in this encoding, or may not contain valid Unicode (UTF-16) characters.
Parameter name: s
Exception Data: none

Hi @guesq,

Just to confirm, are you pressing Artists in the navigation menu, or are there certain artists that you are clicking on the home page that is causing the crash to occur?

If it is the latter, can you provide an example of an artist that is causing this? Can you share a screenshot of what you’re clicking that is making Roon crash?

Thanks!

Hi, @dylan,

When I click “ARTISTS” in the screenshot in Roon 1.8 macOS or press it in Roon 1.8 iPasOS, the crash occurs. I guess there may be special characters that caused the crash in my artists name list, but I do not know which characters cause the crash.
This is the screenshot:

And these are exceptions and stack trace in the log file:
Exception Source: mscorlib
Exception Type: System.ArgumentException
Exception Target Site: Char.ConvertToUtf32
Exception Message: Found a high surrogate char without a following low surrogate at index: 0. The input may not be in this encoding, or may not contain valid Unicode (UTF-16) characters.
Parameter name: s
Exception Data: none

–[ Stack Trace ]------------
System.Char.ConvertToUtf32(String s, Int32 index)
mscorlib.dll, IL 154, N 319
Fontagoo.ComplexTextLayout.ProcessText()
Fontagoo.dll, IL 917, N 4058
Fontagoo.ComplexTextLayout.LayoutInternal(Boolean useFontFallback)
Fontagoo.dll, IL 72, N 530
Fontagoo.ComplexTextLayout.Layout()
Fontagoo.dll, IL 0, N 82
Broo.Engine.LabelBase.OnMeasure(Mezz mw, Mezz mh, RectangleF clip)
BrooEngine.dll, IL 311, N 1036
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.BoxPanel.OnMeasure(Mezz mw, Mezz mh, RectangleF clip)
BrooEngine.dll, IL 530, N 3224
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.DynamicList.MezzMeasureChild(Widget child, Padding childMargin, Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 23, N 242
Broo.Engine.DynamicList.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 366, N 1602
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.BoxPanel.OnMeasure(Mezz mw, Mezz mh, RectangleF clip)
BrooEngine.dll, IL 1209, N 7466
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.ComponentPanel.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 83, N 501
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.BoxPanel.OnMeasure(Mezz mw, Mezz mh, RectangleF clip)
BrooEngine.dll, IL 1272, N 7916
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.Mezz.MeasureChild(Widget widget, Padding childmargin, LayoutSize childsize, Mezz w, Single wextra, Mezz h, Single hextra, RectangleF clip)
BrooEngine.dll, IL 332, N 1072
Broo.Engine.StackPanelBase.OnMeasure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 239, N 1188
Broo.Engine.Widget.Measure(Mezz w, Mezz h, RectangleF clip)
BrooEngine.dll, IL 71, N 260
Broo.Engine.WindowWidget._Measure()
BrooEngine.dll, IL 187, N 571
Broo.Engine.WindowWidget.DoLayout()
BrooEngine.dll, IL 17, N 191
Broo.Engine.Engine.Update()
BrooEngine.dll, IL 266, N 776
Broo.Engine.DeviceTarget.GuiMainLoop()
BrooEngine.dll, IL 358, N 1056
Broo.Engine.Engine.GuiMainLoop()
BrooEngine.dll, IL 0, N 46
Sooloos.Application.Main(String[] argv)
RoonLib.dll, IL 1305, N 7786
RoonMac.Application.Main(String[] args)
Roon.exe, IL 648, N 3162

And the crash occurs too when clicking “Artists” in the sidebar. Roon starts from the last opened page. So when I restart Roon, it will try to show the “Artists” page and crash immediately. To solve this, I have to restart Roon Server, then restart Roon and navigate to another page like “Home” before “Artists” page loaded.

Thanks for report and apologize for inconvenience.
We are going to look into this and fix ASAP. It seems like there is somewhere an entry with malformed unicode.
Unfortunately I can’t propose you any workaround for now other than waiting for a fix.

Thanks. Just updated to Build 756, and this issue persists. I have not found other crashes except this and I could just avoid navigating to Artists page for now. Roon 1.8 is great.

Just updated to Build 763, and the crash still occurs when clicking “Artists”. The error in log is the same: Found a high surrogate char without a following low surrogate at index: 0. The input may not be in this encoding, or may not contain valid Unicode (UTF-16) characters.
But I find an album in my library which Title, Artist and Track titles are unknown characters. If I remove this album from my library, Roon stop crashing when clicking “Artists”. When I try to edit the metadata of the album, the Title, Artist and Track titles are unknown characters if “Prefer Roon” is selected.


So I change all meta settings for this album to “Prefer file” and remove the “Primary artist links”, then everything works fine. If I try to “Identify album”, the automatically detecting album title and artist are unknown characters and the matched album is not the album in my library because the release date is not the same.

And if I click “None of these look right” and try to search the album, the artist in the search input shows :unicorn: P∆RTY.
I guess that there may be a false entry in Roon’s metadata server and it matches an album in my library incorrectly. And the characters in this entry cause the crash.
After changing the metadata of the album to “Prefer file”, no more crash occurs when clicking “Artists” and everything works fine now.

Resolved in B763