macOS 26 – NSSound/CoreAudio causes SIGILL crash in caulk allocator

Hi everyone, We are the engineering team behind an enterprise communications application for macOS. We are experiencing a critical crash on macOS 26 that did not occur on any previous macOS version. We are seeking clarification from Apple engineers or anyone who may have insight into this behaviour.

Environment Architecturex86_64macOS26.4.1 (25E253)HardwareMac15,13 (MacBook Pro)ExceptionSIGILL / ILL_ILLOPCCrashed ThreadThread 0 (Main Thread)TriggerPlaying a notification sound via NSSound during an incoming call

Crash Stack 0 caulk
consolidating_free_map::maybe_create_free_node + 119 ← SIGILL

1 caulk
tiered_allocator + 1469

2 caulk
exported_resource::do_allocate + 15

3 AudioToolboxCore
EABLImpl::create + 204

4 CoreAudio
AUNotQuiteSoSimpleTimeFactory + 33267

8 AudioToolboxCore
AudioUnitInitialize + 189

9 AudioToolbox
XAudioUnit::Initialize + 19

10 AudioToolbox
MESubmixGraph::initialize + 125

11 AudioToolbox
MESubmixGraph::connectInputChannel + 1172

12 AudioToolbox
MEDeviceStreamClient::AddRunningClient + 509

15 AudioToolbox
AudioQueueObject::StartRunning + 194

16 AudioToolbox
AudioQueueObject::Start + 1447

22 AudioToolbox
AQ::API::V2Impl::AudioQueueStartWithFlags + 805

23 AVFAudio
AVAudioPlayerCpp::playQueue + 354

24 AVFAudio
AVAudioPlayerCpp::DoAction + 134

25 AVFAudio
-[AVAudioPlayer play] + 26

26 AppKit
-[NSSound play] + 100

27 Our App
-[AudioHelper tryToStartSound:ofType:] + 569

28 Our App
block_invoke + 59

Behaviour Difference Between macOS Versions The exact same code path that triggers this crash on macOS 26 works without any issue on macOS 14 and macOS 15 — no crash, no warning, no log output of any kind. The crash occurs inside Apple's private caulk memory allocator during CoreAudio audio engine initialisation, triggered by a call to [NSSound play]. The SIGILL / ILL_ILLOPC at maybe_create_free_node + 119 suggests a hard ud2 trap — an intentional abort guard inserted at compile time. This strongly suggests that something changed in macOS 26 within NSSound / CoreAudio / caulk that causes this code path to fail in a way it previously did not.

Questions We have the following specific questions:

Was there a deliberate threading policy change in NSSound / CoreAudio in macOS 26?

Is the SIGILL in caulk::consolidating_free_map::maybe_create_free_node an intentional thread-affinity assertion introduced in macOS 26?

Are there any other NSSound / AVAudioPlayer / AudioQueue APIs that have similarly tightened their requirements in macOS 26 that we should be aware of?

Is there a migration guide, release note, or WWDC session that covers CoreAudio changes in macOS 26 that we may have missed?

Has anyone else in the developer community encountered a similar SIGILL crash in caulk on macOS 26 during audio playback?

To learn more about this I need to see a full Apple crash report. Please post one, per the advice in Posting a Crash Report.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

macOS 26 – NSSound/CoreAudio causes SIGILL crash in caulk allocator
 
 
Q