You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
The getAudioRoutes changes the selected audio route #540
If there is an active session and I call the getAudioRoutes() it changes the audio route, because there is a setCategory executed in the getAudioInputs
We ran into a closely related issue in an Expo SDK 56 application using React Native 0.85.3 and the New Architecture.
On iOS, querying audio routes while CallKit was changing the AVAudioSession could cause the selected route to change unexpectedly. Our local fix was to avoid application-level route changes until didActivateAudioSession, and to keep route inspection separate from route selection.
We also found that failed route operations could crash the app when RNCallKeep passed an NSException directly to a Promise rejection. Passing e.description as an NSString fixed that React Native TurboModule crash. PR #845 addresses that rejection issue, while the timing and session activation behavior still need to be handled by the route flow.
This issue is useful context for both fixes because it shows how route inspection and session activation can interact during an active call.
Activity
fix(ios): The getAudioRoutes changes the selected audio route react-n…
rcidt commentedon Mar 31, 2022
I submitted a PR with a fix to this issue @nagyszili can you please test?
react-native-webrtc#540 fix to not change the setted audio route when…
react-native-webrtc#540 setCategory to get audio routes when call is …
octaviotastico commentedon Jul 31, 2026
We ran into a closely related issue in an Expo SDK 56 application using React Native 0.85.3 and the New Architecture.
On iOS, querying audio routes while CallKit was changing the AVAudioSession could cause the selected route to change unexpectedly. Our local fix was to avoid application-level route changes until didActivateAudioSession, and to keep route inspection separate from route selection.
We also found that failed route operations could crash the app when RNCallKeep passed an NSException directly to a Promise rejection. Passing e.description as an NSString fixed that React Native TurboModule crash. PR #845 addresses that rejection issue, while the timing and session activation behavior still need to be handled by the route flow.
This issue is useful context for both fixes because it shows how route inspection and session activation can interact during an active call.