Connection Issues
Failed to Connect to Room
Symptoms: Connection attempts fail or timeout. Solutions:Reconnection Failures
Symptoms: Room disconnects and fails to reconnect automatically. Solutions:- Check network stability and firewall settings
- Implement reconnection delegate methods to handle state changes:
Audio Issues
Microphone Not Publishing
Symptoms: Audio is not being transmitted to other participants. Solutions:Verify AudioSession Configuration
If using manual audio session configuration, ensure it’s set to
.playAndRecord:Audio Not Playing
Symptoms: Remote audio tracks are subscribed but no sound is heard. Solutions:- Verify device volume is not muted
- Check
AVAudioSessionis active and configured correctly - Ensure audio category supports playback (
.playbackor.playAndRecord)
CallKit Integration Issues
Symptoms: Audio fails when using CallKit or conflicts occur. Solutions: Follow the proper CallKit integration pattern:Video Issues
Camera Not Publishing
Symptoms: Video track is created but no video is transmitted. Solutions:VideoView Not Rendering
Symptoms: VideoView is added but shows no video. Solutions:- Ensure track assignment is on the main thread:
- Verify the VideoView has proper frame/constraints
- Check that the track is actually publishing/receiving frames
- Enable debug logging to see track state changes
Poor Video Quality
Symptoms: Video appears pixelated or low resolution. Solutions:- Adjust video encoding settings:
- For 60 FPS camera:
ScrollView Performance Issues
Symptoms: Poor performance when scrolling through multiple VideoViews. Solutions: Disable rendering for off-screen VideoViews:Memory Issues
Memory Leaks
Symptoms: Memory usage grows over time or Room doesn’t deallocate. Solutions:Clean Up VideoView
The
VideoView.track property doesn’t hold strong references, but it’s good practice to nil it:Build Issues
macOS Catalina Crashes
Symptoms: App crashes on macOS Catalina with “ReplayKit not found”. Solution: If targeting macOS Catalina:- Add
ReplayKit.frameworkto Build Phases > Link Binary with Libraries - Set it to Optional (not Required)
This is only required for macOS 10.15 Catalina. Apps targeting macOS 11.0+ do not need this.
App Store Submission - Missing DSYMs
Symptoms: Warning about missing dSYM for LiveKitWebRTC.framework. Solution: This is expected and will not prevent your app from being submitted or passing review. TheLiveKitWebRTC.xcframework binary does not include DSYMs.
If you need DSYMs (for custom builds), use the build script in DEBUG mode.
CocoaPods Deprecation
Warning: CocoaPods support is deprecated and will become read-only in 2027. Solution: Migrate to Swift Package Manager:Screen Sharing Issues
Screen Share Not Working on macOS
Symptoms: Screen sharing gets stuck when display is turned off. Solution: This was fixed in SDK v2.8.0. Update to the latest version.Broadcast Extension Issues
Symptoms: App crashes when moving to background during broadcast. Solution: Fixed in v2.10.2. Ensure you’re using the latest SDK version. For iOS screen sharing setup, see the iOS Screen Sharing guide.Performance Optimization
High CPU Usage
Solutions:- Disable off-screen VideoViews (see ScrollView performance above)
- Reduce video resolution/framerate if not needed
- Use appropriate video codec settings
- Monitor track statistics to identify bottlenecks
Reduce Mic Publish Latency
Solution: Pre-warm the audio engine:Getting Help
Community Support
Join our Slack community for help from devs and community members
GitHub Issues
Report bugs or request features on GitHub
FAQ
Check frequently asked questions
Documentation
Browse the complete LiveKit documentation
Debugging Tips
Enable Logging
Capture Warning/Error Logs
SubclassOSLogger to capture specific log levels:
Thread Safety Checks
- All
VideoViewoperations must be on the main thread - Delegates are called on SDK’s internal thread
- Use
@MainActororDispatchQueue.main.asyncfor UI updates