`FigAudioSession(AV) err=-19224` triggered by empty Button tap on visionOS 26.5, breaking subsequent AVAudioSession configuration

Environment

  • Device: Apple Vision Pro (real device)
  • OS: visionOS 26.5
  • Xcode: 26.5
  • Framework: AVFAudio / AVFoundation

Summary

On visionOS 26.5, tapping an empty Button consistently emits the following internal warning before the action closure executes:

<<<< FigAudioSession(AV) >>>> signalled err=-19224 (<>:612)

After this warning is emitted, any subsequent call to configure AVAudioSession silently stops working — audio input and output become non-functional for the lifetime of the session.

If the same configuration is performed without a preceding button tap (e.g., inside View.task {}), it succeeds and audio works correctly.


Reproduction

Due to a dependency on LiveKitWebRTC (livekit/webrtc-xcframework) for WebRTC-based Realtime API audio, we are unable to provide a full self-contained sample project. However, the AVAudioSession configuration code involved is as follows:

static func configureAudioSession() {
    #if !os(macOS)
    do {
        let audioSession = AVAudioSession.sharedInstance()
        #if os(tvOS)
        try audioSession.setCategory(.playAndRecord, options: [])
        #else
        try audioSession.setCategory(.playAndRecord, options: [.defaultToSpeaker])
        #endif
        try audioSession.setMode(.videoChat)
        try audioSession.setActive(true, options: .notifyOthersOnDeactivation)
    } catch {
        print("Failed to configure AVAudioSession: \(error)")
    }
    #endif
}

Scenario A — Button tap (fails):

Button("Start") {
    configureAudioSession() // FigAudioSession err=-19224 appears; audio stops working
}

Scenario B — View.task (succeeds):

.task {
    configureAudioSession() // No warning; audio works correctly
}

The only difference is whether a user gesture (Button tap) precedes the call.


Observed Behavior

  • Tapping any Button on visionOS 26.5 causes FigAudioSession(AV) err=-19224 to be signalled at <>:612, even before the action closure runs.
  • After this warning, AVAudioSession configuration appears to have no effect — setActive(true) does not throw, but audio appears to stop functioning.
  • Configuring the session prior to any button interaction (e.g., in View.task {}) works correctly.

Expected Behavior

  • A Button tap should not implicitly interfere with the audio session state.
  • AVAudioSession configuration should succeed regardless of the UI event context that triggers it.

Questions

  1. What does FigAudioSession(AV) err=-19224 mean? Does it correspond to a documented AVAudioSession.ErrorCode?

  2. Why does a Button tap trigger a FigAudioSession signal on visionOS? Is the system performing implicit audio session management when detecting user interaction?

  3. Is there a recommended pattern for configuring AVAudioSession in response to a user gesture on visionOS? Our current workaround (View.task {}) is not suitable for on-demand audio start triggered by the user.

  4. Is err=-19224 causally responsible for the subsequent audio issue? Since setActive(true) does not throw after the warning, it is unclear whether this signal is the direct cause of the apparent audio failure or a symptom of a deeper conflict.

  5. Are there UI components or APIs on visionOS that do not trigger this signal, while still being user-interaction driven?


Additional Notes

  • Reproducible only on physical Apple Vision Pro hardware; not observed in Simulator.
  • AirPlay mirroring is not in use during testing.
  • No other apps are playing audio in the background at the time of reproduction.
  • We use LiveKitWebRTC (livekit/webrtc-xcframework, revision 94ce1c9) for WebRTC audio. However, the FigAudioSession warning appears independently of the WebRTC layer — it is emitted on Button tap even before configureAudioSession() is called.
  • We have verified that calling configureAudioSession() before performHandshake() (i.e., before WebRTC initializes its audio pipeline) does not resolve the issue when a Button tap precedes the call.
&#96;FigAudioSession(AV) err=-19224&#96; triggered by empty Button tap on visionOS 26.5, breaking subsequent AVAudioSession configuration
 
 
Q