October 13, 2026
🐞 Fixed
- Configure and activate audio before capture starts, and prepare call transports before capture to avoid an engine rebuild during joining. #1355
- Fixed a launch crash when an iOS app that uses StreamVideo runs on Mac. #1344
- Kept blocking WebRTC operations and peer connection teardown off UI and Swift concurrency threads. #1345
- Old call connections now stop negotiating when reconnection cleanup begins. #1342
- Calls now finish cleanup and stop reporting stats when released during hang-up. #1328
- Reduced UI freezes when updating video views or logging media events. #1346
- Calls no longer enter a repeated subscriber renegotiation loop after a fast reconnect, and subscriber answers identify the offer they answer. #1343
- OBS video remains identified as RTMP when its track is paused and resumed, so viewers can return to the correct video source. #1331
- Muting now stops outgoing audio even if the server rejects the request or speaking permission has been revoked. #1327
- Stale migration callbacks no longer interrupt call recovery, and rejected state transitions preserve reconnection timers and subscriptions. #1350
- Repeated video-view cleanup no longer detaches a track from a reused renderer. #1348
- Failed SDP negotiations now roll back pending offers so later negotiations can succeed. A failed rollback requests call recovery. #1352
- Late WebRTC callbacks no longer accept remote SDP after close or report first frames from retired track registrations. #1349
- Preserved CallKit audio activation during rejoin and migration so microphone capture and playback can recover without another system activation callback. #1351