AVAudioEngineConfigurationChangeNotification received while engine is running

The documentation for AVAudioEngineConfigurationChangeNotification states

When the audio engine’s I/O unit observes a change to the audio input or output hardware’s channel count or sample rate, the audio engine stops, uninitializes itself, and issues this notification.

A user of my framework has reported a crash during notification processing on iOS 26.4 when the main mixer node is disconnected from the output node in order to reestablish the connection with a different format. The failing precondition is com.apple.coreaudio.avfaudio: required condition is false: !IsRunning().

The report was observed on iPhone 16 / iOS 26.4.2, ARM64, TestFlight build. The backtrace contains:

[Last Exception Backtrace]
3  AVFAudio   AVAudioEngineGraph::_DisconnectInput          AVAudioEngineGraph.mm:2728
4  AVFAudio   -[AVAudioEngine disconnectNodeInput:bus:]     AVAudioEngine.mm:155
5  SFB        sfb::AudioPlayer::handleAudioEngineConfigurationChange  AudioPlayer.mm:2247

[Thread 18 Crashed]
9  SFB        sfb::AudioPlayer::handleAudioEngineConfigurationChange  AudioPlayer.mm:2212
…
14 AVFAudio   IOUnitConfigurationChanged

Has the behavior for AVAudioEngineConfigurationChangeNotification changed in iOS 26.4? It's simple enough to call [engine_ stop] in the notification handler but the documentation states this shouldn't be necessary. I've not observed a similar crash on previous iOS versions.

AVAudioEngineConfigurationChangeNotification received while engine is running
 
 
Q