Roon remote crashes on MacOS Tahoe due to System.NullReferenceException (ref#TDT4J8)

What’s happening?

· My Roon software won't start up

How can we help?

· I am experiencing freezes or crashes

Other options

· My Roon software won't start up

Describe the issue

Roon remote on MacOS Tahoe crashes on startup with System.NullReferenceException

Describe your network setup

Roon server on Windows 10, remote on MacOS tahoe

Roon icon appears briefly in dock and then disappears. Log indicates System.NullReferenceException. I checked Privacy & Security → Local network and Roon is toggled to on.

Here are the logs:

10/11 13:05:43 Info: Starting Roon v2.55 (build 1559) production on macosx
10/11 13:05:43 Info: Local time is 10/11/2025 1:05:43PM, UTC time is 10/11/2025 8:05:43PM
10/11 13:05:43 Trace: [roondns] loaded 5 last-known-good entries
10/11 13:05:43 Debug: Init DefaultBackingApi: HttpWebRequest
10/11 13:05:43 Debug: [easyhttp] default backing API HttpClient -> HttpWebRequest. This may cancel all in progress http requests
10/11 13:05:43 Debug: Attempting to load library: /System/Library/Frameworks/Foundation.framework/Foundation
10/11 13:05:43 Info: Library[/System/Library/Frameworks/Foundation.framework/Foundation] Loaded success => True
10/11 13:05:43 Debug: Attempting to load library: /System/Library/Frameworks/AppKit.framework/AppKit
10/11 13:05:43 Info: Library[/System/Library/Frameworks/AppKit.framework/AppKit] Loaded success => True
10/11 13:05:43 Debug: Attempting to load framework: /System/Library/Frameworks/Cocoa.framework
10/11 13:05:43 Info: Framework[/System/Library/Frameworks/Cocoa.framework] Loaded success => True
10/11 13:05:43 Debug: Attempting to load framework: /System/Library/Frameworks/OpenGL.framework
10/11 13:05:43 Info: Framework[/System/Library/Frameworks/OpenGL.framework] Loaded success => True
10/11 13:05:43 Trace: Switching display link to display 1
10/11 13:05:43 Debug: [desktopclient/main] found last broker choice: e2fc9448-bd65-44b9-a727-c4f32bfb7101
10/11 13:05:43 Warn: !!!! are we connected to a local broker? False !!!!
10/11 13:05:43 Debug: [Migrate] Skipping, migration process already finished
10/11 13:05:43 Info: get lock file path: /tmp/.rnsem501-
10/11 13:05:43 Info: GetLockFile, fd: 265
10/11 13:05:43 Info: GetLockFile, res: 0
10/11 13:05:43 Info: get lock file path: /var/tmp/.rnsem501-
10/11 13:05:43 Info: GetLockFile, fd: 269
10/11 13:05:43 Info: GetLockFile, res: 0
10/11 13:05:43 Trace: Nope, we are the only one running
10/11 13:05:43 Info: Is 64 bit? True
10/11 13:05:43 Info: Loading broo project: ui.broox
10/11 13:05:43 Debug: BrooLoader.Load
10/11 13:05:43 Debug: Creating OpenGL Device Target
10/11 13:05:43 Trace: [realtime] fetching time from NTP server
10/11 13:05:43 Debug: OpenGL Version: 4.1 Metal - 90.5
10/11 13:05:43 Debug: OpenGL Vendor: Apple
10/11 13:05:43 Trace: [ipaddresses] enumerating addresses
10/11 13:05:43 Debug: OpenGL Renderer: Apple M3 Max
10/11 13:05:43 Debug: OpenGL Shader Language: 4.10
10/11 13:05:43 Debug: OpenGL extension count: 43
10/11 13:05:43 Debug: OpenGL extension 0: GL_ARB_blend_func_extended
10/11 13:05:43 Debug: OpenGL extension 1: GL_ARB_draw_buffers_blend
10/11 13:05:43 Debug: OpenGL extension 2: GL_ARB_draw_indirect
10/11 13:05:43 Debug: OpenGL extension 3: GL_ARB_ES2_compatibility
10/11 13:05:43 Debug: OpenGL extension 4: GL_ARB_explicit_attrib_location
10/11 13:05:43 Debug: OpenGL extension 5: GL_ARB_gpu_shader_fp64
10/11 13:05:43 Debug: OpenGL extension 6: GL_ARB_gpu_shader5
10/11 13:05:43 Debug: OpenGL extension 7: GL_ARB_instanced_arrays
10/11 13:05:43 Debug: OpenGL extension 8: GL_ARB_internalformat_query
10/11 13:05:43 Debug: OpenGL extension 9: GL_ARB_occlusion_query2
10/11 13:05:43 Debug: OpenGL extension 10: GL_ARB_sample_shading
10/11 13:05:43 Debug: OpenGL extension 11: GL_ARB_sampler_objects
10/11 13:05:43 Debug: OpenGL extension 12: GL_ARB_separate_shader_objects
10/11 13:05:43 Debug: OpenGL extension 13: GL_ARB_shader_bit_encoding
10/11 13:05:43 Debug: OpenGL extension 14: GL_ARB_shader_subroutine
10/11 13:05:43 Debug: OpenGL extension 15: GL_ARB_shading_language_include
10/11 13:05:43 Debug: OpenGL extension 16: GL_ARB_tessellation_shader
10/11 13:05:43 Debug: OpenGL extension 17: GL_ARB_texture_buffer_object_rgb32
10/11 13:05:43 Debug: OpenGL extension 18: GL_ARB_texture_cube_map_array
10/11 13:05:43 Debug: OpenGL extension 19: GL_ARB_texture_gather
10/11 13:05:43 Debug: OpenGL extension 20: GL_ARB_texture_query_lod
10/11 13:05:43 Debug: OpenGL extension 21: GL_ARB_texture_rgb10_a2ui
10/11 13:05:43 Debug: OpenGL extension 22: GL_ARB_texture_storage
10/11 13:05:43 Debug: OpenGL extension 23: GL_ARB_texture_swizzle
10/11 13:05:43 Debug: OpenGL extension 24: GL_ARB_timer_query
10/11 13:05:43 Debug: OpenGL extension 25: GL_ARB_transform_feedback2
10/11 13:05:43 Debug: OpenGL extension 26: GL_ARB_transform_feedback3
10/11 13:05:43 Debug: OpenGL extension 27: GL_ARB_vertex_attrib_64bit
10/11 13:05:43 Debug: OpenGL extension 28: GL_ARB_vertex_type_2_10_10_10_rev
10/11 13:05:43 Debug: OpenGL extension 29: GL_ARB_viewport_array
10/11 13:05:43 Debug: OpenGL extension 30: GL_EXT_debug_label
10/11 13:05:43 Debug: OpenGL extension 31: GL_EXT_debug_marker
10/11 13:05:43 Debug: OpenGL extension 32: GL_EXT_framebuffer_multisample_blit_scaled
10/11 13:05:43 Trace: [ipaddresses]    FOUND   lo0 127.0.0.1
10/11 13:05:43 Debug: OpenGL extension 33: GL_EXT_texture_compression_s3tc
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED gif0: no ipv4
10/11 13:05:43 Debug: OpenGL extension 34: GL_EXT_texture_filter_anisotropic
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED stf0: no ipv4
10/11 13:05:43 Debug: OpenGL extension 35: GL_EXT_texture_sRGB_decode
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED anpi0: no ipv4
10/11 13:05:43 Debug: OpenGL extension 36: GL_APPLE_client_storage
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED anpi1: no ipv4
10/11 13:05:43 Debug: OpenGL extension 37: GL_APPLE_container_object_shareable
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED anpi2: no ipv4
10/11 13:05:43 Debug: OpenGL extension 38: GL_APPLE_flush_render
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED en4: no ipv4
10/11 13:05:43 Debug: OpenGL extension 39: GL_APPLE_rgb_422
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED en5: no ipv4
10/11 13:05:43 Debug: OpenGL extension 40: GL_APPLE_row_bytes
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED en6: no ipv4
10/11 13:05:43 Debug: OpenGL extension 41: GL_APPLE_texture_range
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED en1: no ipv4
10/11 13:05:43 Debug: OpenGL extension 42: GL_NV_texture_barrier
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED en2: no ipv4
10/11 13:05:43 Debug: OpenGL maximum texture size: 16384
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED en3: no ipv4
10/11 13:05:43 Debug: OpenGL maximum array texture layers: 2048
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED bridge0: no ipv4
10/11 13:05:43 Debug: Framebuffer info : R8G8B8A8, color encoding: 0x2601, depth: 32, stencil: 0
10/11 13:05:43 Trace: [ipaddresses]    SKIPPED ap1: no ipv4
10/11 13:05:44 Trace: [ipaddresses]    FOUND   en0 192.168.0.153
10/11 13:05:44 Trace: [ipaddresses]    SKIPPED awdl0: no ipv4
10/11 13:05:44 Trace: [ipaddresses]    SKIPPED llw0: no ipv4
10/11 13:05:44 Trace: [ipaddresses]    SKIPPED utun0: no ipv4
10/11 13:05:44 Trace: [ipaddresses]    SKIPPED utun1: no ipv4
10/11 13:05:44 Trace: [ipaddresses]    SKIPPED utun2: no ipv4
10/11 13:05:44 Trace: [ipaddresses]    SKIPPED utun3: no ipv4
10/11 13:05:44 Debug: Vertex highp int: range (-2^31 to 2^30), precision: 0 bits
10/11 13:05:44 Debug: Vertex mediump int: range (-2^31 to 2^30), precision: 0 bits
10/11 13:05:44 Debug: Vertex lowp int: range (-2^31 to 2^30), precision: 0 bits
10/11 13:05:44 Debug: Vertex highp float: range (-2^127 to 2^127), precision: 23 bits
10/11 13:05:44 Debug: Vertex mediump float: range (-2^127 to 2^127), precision: 23 bits
10/11 13:05:44 Debug: Vertex lowp float: range (-2^127 to 2^127), precision: 23 bits
10/11 13:05:44 Debug: Fragment highp int: range (-2^31 to 2^30), precision: 0 bits
10/11 13:05:44 Debug: Fragment mediump int: range (-2^31 to 2^30), precision: 0 bits
10/11 13:05:44 Debug: Fragment lowp int: range (-2^31 to 2^30), precision: 0 bits
10/11 13:05:44 Debug: Fragment highp float: range (-2^127 to 2^127), precision: 23 bits
10/11 13:05:44 Debug: Fragment mediump float: range (-2^127 to 2^127), precision: 23 bits
10/11 13:05:44 Debug: Fragment lowp float: range (-2^127 to 2^127), precision: 23 bits
10/11 13:05:44 Trace: [broo/imagecache] loaded 1264 cache entries from /Users/ockers/Library/Roon/Cache/brooimages_1/index.db, current: 512mb / 138mb
10/11 13:05:44 Warn: [orbit] init failed due to ArgumentOutOfRange_IndexCountBuffer Arg_ParamName_Name, bytes, reiniting
10/11 13:05:44 Debug: Maximum parallel texture loading jobs: 13
10/11 13:05:44 Debug: Maximum OpenGl texture size is 16384
10/11 13:05:44 Debug: Loading Binding Assembly
10/11 13:05:44 Debug: Loading Binding Assembly
10/11 13:05:44 Debug: creating Engine
10/11 13:05:44 Debug: Constructing Script Context
10/11 13:05:44 Debug: using FreeType v2.11.0
10/11 13:05:44 Debug: creating LoadContext
10/11 13:05:44 Trace: [brooengine] Loaded atlas list. 0ms
10/11 13:05:44 Trace: [brooengine] Window is running in scale 2
10/11 13:05:44 Trace: [brooengine] Using atlas scale 2
10/11 13:05:44 Debug: waiting for script context
10/11 13:05:44 Debug: setting up script context
10/11 13:05:44 Debug: render area size initial value: 699x610
10/11 13:05:44 Info: Loaded broo project: ui.broox, atlas: ui
10/11 13:05:44 Info: Kicking off event loop
10/11 13:05:44 Info: Kicking off event loop
10/11 13:05:44 Debug: ui running on thread 1
10/11 13:05:44 Info: Kicking off main
10/11 13:05:44 Info: Creating root
10/11 13:05:44 Trace: [realtime] Got time from NTP: 10/11/2025 8:05:44PM UTC (3969201944036ms)
10/11 13:05:44 Trace: [realtime] Updated clock skew to -00:00:00.0471840 (-47.184ms)
10/11 13:05:44 Debug: [brooengine Loaded atlas texture ui_atlas@2x-3.png in 44ms
10/11 13:05:44 Debug: [brooengine Loaded atlas texture ui_atlas@2x-1.png in 63ms
10/11 13:05:44 Debug: [brooengine Loaded atlas texture ui_atlas@2x-2.png in 68ms
10/11 13:05:44 Trace: [brooengine] Loaded atlas. 71ms (175ms across all threads)
10/11 13:05:44 Warn: AddTopLevel: win_apploading(5)
10/11 13:05:44 Info: [stats] 428357mb Virtual, 528mb Physical, 190mb Managed, 338mb estimated Unmanaged
10/11 13:05:45 Info: [broker] starting 40227002-9b7f-4867-aff2-4c31e0907a39
10/11 13:05:45 Info: [remoting/distributedbroker] V2 Protocol Support is enabled
10/11 13:05:45 Debug: initialize backend in 1117ms
10/11 13:05:45 Info: [raatserver] [runner] Start or Connect...
10/11 13:05:45 Info: [raatserver] [runner] Start or Connect... /Applications/Roon.app/Contents/MacOS/RAATServer
10/11 13:05:45 Info: ConnectOrStartAndWaitForExit RAATServer, path: /Applications/Roon.app/Contents/MacOS/RAATServer
10/11 13:05:45 Info: ConnectOrStartAndWaitForExit RAATServer: Try to connect to existing raatserver
10/11 13:05:45 Info: [raatserver] [runner] Status: Connected
10/11 13:05:45 Debug: ev_app_init: no delay before showing $win_disconnected_broker
10/11 13:05:45 Debug: app_init completed
10/11 13:05:45 Debug: [windowpos] get restore pos: mode= , p={X=476, Y=131}, s={Width=1064, Height=744}
10/11 13:05:45 Debug: ev_app_init: no delay before showing $win_disconnected_broker
10/11 13:05:45 Debug: trigger: appinitwasnotrun
10/11 13:05:45 Debug: trigger: do nothing
10/11 13:05:45 Info: [remoting] loaded protocol hash 0ff2eb68b9910d3b8abb4dbabf5d892b2bcb217d from /Applications/Roon.app/Contents/MonoBundle/.xamarin/osx-arm64/Roon.Broker.Api.Remote.dll
10/11 13:05:45 Trace: [remoting/distributedbroker] Enabling remote broker tracking
10/11 13:05:45 Debug: render area size changed value: 1064x716
10/11 13:05:45 Debug: [broker/filebrowser/volumeattached] initial listing found drive mounted at /
10/11 13:05:45 Debug: [broker/filebrowser] getpartitioninfo 1 command: /usr/sbin/diskutil, args: info -plist '/'
10/11 13:05:45 Info: 
Local Time:            10/11/2025 13:05:45 -07:00
Device Serial Number:  E5E21F15-EADE-47B3-B000-A8C10DEF74F3
Roon Version:       2.55 (build 1559) production
OS Version:            Mac OS X 26.0.1
Hardware Version:      Mac15,11
Mono Version:          unknown

Application Domain:    Roon
Assembly Codebase:     file:///Applications/Roon.app/Contents/MonoBundle/.xamarin/osx-arm64/Roon.dll
Assembly Full Name:    Roon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

CPU0 Description:      Apple M3 Max (64-bit)
CPU0 Num Cores:        Physical: 14 Logical: 14

   Exception Source:      System.Private.CoreLib
   Exception Type:        System.NullReferenceException
   Exception Target Site: SpanHelpers.IndexOf
   Exception Message:     Arg_NullReferenceException
   Exception Data:        none

   --[ Stack Trace ]------------
   System.SpanHelpers.IndexOf(Byte& searchSpace, Byte value, Int32 length)
       System.Private.CoreLib.dll, IL 81, N 79
   System.String.Ctor(SByte* value)
       System.Private.CoreLib.dll, IL 13, N 43
   System.Runtime.InteropServices.Marshal.PtrToStringAnsi(IntPtr ptr)
       System.Private.CoreLib.dll, IL 0, N 31
   Interop/Sys/<>c__DisplayClass13_0.<GetAllMountPoints>b__0(Byte* name)
       System.IO.FileSystem.DriveInfo.dll, IL 35, N 127

Roon remotes on Android and Windows (including the local Roon.exe on the MediaPC itself, and a Roon remote on Ubuntu Linux) all work OK. Just the MacOS one is crashy.

The mac has IP

ockers@Jamess-MacBook-Pro Logs % ifconfig | grep 192.168
	inet 192.168.0.153 netmask 0xffffff00 broadcast 192.168.0.255

Interestingly, the (Windows 10) server logs the following when the (mac) Roon.app is launched:

10/11 13:29:40 Trace: [raat] RAATServer discovered: RaatServer dhcp153 @ 192.168.0.153:9200
10/11 13:29:40 Info: [raatserver] GOT SERVER fcd084de-adee-e154-f774-1fd711528289::1f3c6850-70dc-428b-8539-c82a3fbe25f4 @ 192.168.0.153:9200 dhcp153 PROTOVER=1 RAATVER=1.1.39 
10/11 13:29:40 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connecting (attempt 1)
10/11 13:29:40 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connected
10/11 13:29:40 Trace: [rnet/RnetJsonClient] SENT {"request":"enumerate_devices","subscription_id":"0"}
10/11 13:29:40 Trace: [rnet/RnetJsonClient] GOT NONFINAL {"status": "Success", "devices": [{"device_id": "BuiltInSpeakerDevice", "type": "coreaudio", "vendor": "Apple Inc.", "name": "MacBook Pro Speakers"}, {"device_id": "MSLoopbackDriverDevice_UID", "type": "coreaudio", "vendor": "Microsoft Corp.", "name": "Microsoft Teams Audio"}, {"device_id": "default", "type": "coreaudio", "name": "System Output", "is_system_output": true}]}
10/11 13:29:40 Info: [raatserver] GOT DEVICE 1f3c6850-70dc-428b-8539-c82a3fbe25f4::BuiltInSpeakerDevice Type=coreaudio Name=MacBook Pro Speakers Vendor=Apple Inc.
10/11 13:29:40 Info: [raatserver] GOT DEVICE 1f3c6850-70dc-428b-8539-c82a3fbe25f4::MSLoopbackDriverDevice_UID Type=coreaudio Name=Microsoft Teams Audio Vendor=Microsoft Corp.
10/11 13:29:40 Info: [raatserver] GOT DEVICE 1f3c6850-70dc-428b-8539-c82a3fbe25f4::default Type=coreaudio Name=System Output 
10/11 13:29:47 Info: [stats] 2103714mb Virtual, 1204mb Physical, 748mb Managed, 456mb estimated Unmanaged, 2118 Handles, 77 Threads
10/11 13:29:49 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] lost client connection. Retrying(0)
10/11 13:29:49 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connecting (attempt 1)
10/11 13:29:51 Debug: [easyhttp] [2291] POST to https://api.roonlabs.net/device-map/1/register returned after 229 ms, status code: 200, request body size: 8 KB
10/11 13:29:51 Trace: [devicemap] device map updated
10/11 13:29:51 Warn: [rnet/RnetJsonClient] failed to connect No connection could be made because the target machine actively refused it.
10/11 13:29:51 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] client connection failed. Retrying in 500ms
10/11 13:29:51 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connecting (attempt 2)
10/11 13:29:53 Warn: [rnet/RnetJsonClient] failed to connect No connection could be made because the target machine actively refused it.
10/11 13:29:53 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] client connection failed. Retrying in 750ms
10/11 13:29:54 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connecting (attempt 3)
10/11 13:29:56 Warn: [rnet/RnetJsonClient] failed to connect No connection could be made because the target machine actively refused it.
10/11 13:29:56 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] client connection failed. Retrying in 1125ms
10/11 13:29:57 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connecting (attempt 4)
10/11 13:29:59 Warn: [rnet/RnetJsonClient] failed to connect No connection could be made because the target machine actively refused it.
10/11 13:29:59 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] client connection failed. Retrying in 1687ms
10/11 13:30:01 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] connecting (attempt 5)
10/11 13:30:02 Info: [stats] 2103714mb Virtual, 1204mb Physical, 748mb Managed, 456mb estimated Unmanaged, 2121 Handles, 77 Threads
10/11 13:30:02 Trace: [roondns] flushed 6 last-known-good entries
10/11 13:30:03 Warn: [rnet/RnetJsonClient] failed to connect No connection could be made because the target machine actively refused it.
10/11 13:30:03 Trace: [raatserver] [RaatServer dhcp153 @ 192.168.0.153:9200] client connection failed. Giving up
10/11 13:30:03 Trace: [raat] [sood] Refreshing device list
10/11 13:30:13 Debug: [easyhttp] [2293] POST to https://api.roonlabs.net/device-map/1/register returned after 155 ms, status code: 200, request body size: 8 KB
10/11 13:30:13 Trace: [devicemap] device map updated

Hello @James_Ockers,

Thank you for the detailed report and for including the logs — that’s very helpful.

We’ve identified the System.NullReferenceException crash on macOS 15 (Tahoe / Sequoia) as a known issue that affects the current production build.

A fix for this issue has already been included in the latest EA build.

Could you please update your Roon installation to the newest Early Access build, or alternatively wait for the upcoming production release which includes this fix?

Once updated, the Roon app should launch normally without crashing on startup.

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