when setting up your AudioEngine you can observe kAudioComponentInstanceInvalidationNotification
to figure out if its audio component instance was invalidated later on.
[[NSNotificationCenter defaultCenter] addObserverForName:kAudioComponentInstanceInvalidationNotification object:nil queue:nil usingBlock:^(NSNotification *note) {
AUAudioUnit *auUnit = (AUAudioUnit *)note.object;
NSValue *val = note.userInfo[@"audioUnit"];
AudioUnit auAddress = (AudioUnit)val.pointerValue;
NSLog(@"AudioComponent Invalidation of Unit:%@ with Address:%p", auUnit, auAddress);
}];
keep in mind that you may have got the notification but the component ended up in a deadlock. So when trying to recover from that you may have to turn down the whole host app.