https://livekit.io logo
Join Slack
Powered by
# github
  • m

    microscopic-jackal-49366

    07/25/2025, 9:09 AM
    #3821 Get to the point of establishing subscriber peer connection. Pull request opened by boks1971 Proper message id checks. Some refactoring for common code in rtcv2service handlers. Instantiate signalling based on synchronous local candidates flag, but needs better defined code. livekit/livekit
    • 1
    • 2
  • m

    microscopic-jackal-49366

    07/25/2025, 9:19 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/e3155b146be9db6da09a2171b3b77597b2d0d719|e3155b14>
    - Get to the point of establishing subscriber peer connection. (#3821) livekit/livekit
  • m

    microscopic-jackal-49366

    07/25/2025, 10:53 PM
    #500 When I create a room and running in the background, if other participants join the room, I publishing the audio track but it is ineffective. Issue created by liuyang2211 Describe the bug When I create a room and running in the background, if other participants join the room, I publishing the audio track but it is ineffective. SDK Version 2.0.12 iOS/macOS Version 18.0 Xcode Version 16.0 -【LiveKit】: newState.trackState:none newState.isSpeakerOutputPreferred:false oldState.trackState:none oldState.isSpeakerOutputPreferred:false -【LiveKit】: .soloAmbient configuring audio session category: AVAudioSessionCategorySoloAmbient, mode: AVAudioSessionModeDefault -【LiveKit】: configuring audio session category: AVAudioSessionCategorySoloAmbient, mode: AVAudioSessionModeDefault, setActive: true AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' -【LiveKit】: Failed to configure audio session with error: Error Domain=NSOSStatusErrorDomain Code=560557684 "(null)" 2024-10-15T114238+0800 : [LiveKit] LocalParticipant._publish(trackoptions) [publish] LocalAudioTrack(sid: nil, name: microphone, source: Source(rawValue: 2)) options: Optional(<LiveKit.AudioPublishOptions: 0x300271800>)... -【LiveKit】: newState.trackState:localOnly newState.isSpeakerOutputPreferred:false oldState.trackState:none oldState.isSpeakerOutputPreferred:false -【LiveKit】: configuring audio session category: AVAudioSessionCategoryPlayAndRecord, mode: AVAudioSessionModeVoiceChat, setActive: true 2024-10-15T114238+0800 info LiveKitSDK : [LiveKit] LocalParticipant._publish(trackoptions) [publish] success LocalTrackPublication(sid: TR_AMUAw7BUZhb2n5, kind: Kind(rawValue: 0), source: Source(rawValue: 2)) -【LiveKit】:local【LewisiOS-】didPublishTrack【audio,microphone,Optional("started")】 AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' AVAudioSession_iOS.mm:3396 Failed to set mode: -50 AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' -【LiveKit】: Failed to configure audio session with error: Error Domain=NSOSStatusErrorDomain Code=560557684 "(null)" AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' AVAudioSession_iOS.mm:3396 Failed to set mode: -50 AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' AVAudioSession_iOS.mm:3396 Failed to set mode: -50 AVAudioSessionClient_Common.mm:574 Failed to set properties, error: '!int' livekit/client-sdk-swift
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/27/2025, 4:13 AM
    #3822 Get to the point of connecting publisher PC and using it for async signalling Pull request opened by boks1971 livekit/livekit
    • 1
    • 2
  • m

    microscopic-jackal-49366

    07/27/2025, 10:57 AM
    1 new commit pushed to
    <https://github.com/livekit/client-sdk-swift/tree/main|main>
    by hiroshihorie
    <https://github.com/livekit/client-sdk-swift/commit/f37bbd260d61e165084962db822c79f995f1a113|f37bbd26>
    - Update code formatting (#741) livekit/client-sdk-swift
  • m

    microscopic-jackal-49366

    07/28/2025, 12:20 AM
    #747 Swift SDK: Connection Times Out After Successful Signaling Handshake Issue created by antonioallen Describe the bug The LiveKit Swift SDK consistently produces a
    Code=101 "Timed out"
    error on a real iOS device during the WebRTC media connection phase. This occurs even when connecting to a fully verified server infrastructure that is proven to be working correctly with command-line diagnostic tools. The initial signaling handshake (WebSocket upgrade) succeeds, but the connection never reaches the
    .connected
    state. The issue is also reproducible using the official
    agent-starter-swift
    example project, which I think points to a potential issue within the SDK itself rather than application-specific code. SDK Version
    2.6.1
    iOS/macOS Version
    iOS 18.5
    Xcode Version
    16.4
    Steps to Reproduce 1. Set up a self-hosted LiveKit server (
    1.9.0
    ) on AWS EKS, fronted by an Nginx Ingress Controller and an AWS Network Load Balancer configured for TCP/TLS passthrough. 2. Set up and configure a Stunner TURN server, also on EKS. 3. Verify the entire server stack is working using
    wscat
    (which connects successfully) and the WebRTC Trickle ICE tester (which successfully gathers
    srflx
    and
    relay
    candidates). 4. Generate a valid room token using the official
    livekit-server-sdk
    for Node.js. 5. Attempt to connect from a real iOS device using the official
    agent-starter-swift
    example project with a hardcoded server URL and token. 6. Observe that the connection times out after approximately 10 seconds. Expected behavior The
    room.connect(...)
    call should successfully complete, and the `RoomDelegate`'s connection state should transition to
    .connected
    without timing out. Screenshots Not applicable. Logs 1. Nginx Ingress Log (Server-Side Success) This log from the Nginx Ingress controller shows a successful
    101 Switching Protocols
    response, proving the WebSocket handshake is working.
    Copy code
    [CLIENT_IP] - - [27/Jul/2025:23:32:32 +0000] "GET /rtc?access_token=[VALID_TOKEN]... HTTP/1.1" 101 4368 "-" "[APP_NAME]/1 CFNetwork/..." 797 10.304 [UPSTREAM_SERVICE] [] [UPSTREAM_IP]:7880 0 10.305 101 [REQUEST_ID]
    2. Xcode Log (Client-Side Handshake Success) This log from Xcode shows the SDK successfully receiving the server's connection response right before the timeout occurs.
    Copy code
    swift  
    Room.signalClient(_:didReceiveConnectResponse:) ServerInfo(edition: standard, version: 1.9.0, protocol: 16, region: , nodeID: ND_NUwx7js9mrHm, debugInfo: )
    3. Xcode Log (Client-Side Timeout Error) This is the final error reported by the SDK after the media connection fails to establish.
    Copy code
    swift  
    Live Session: Optional(Error Domain=io.livekit.swift-sdk Code=101 "Timed out" UserInfo={NSLocalizedDescription=Timed out})
    Xcode Logs: `Room.connect(urltokenconnectOptionsroomOptions) Connecting to room... 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.cleanUp(withErrorisFullReconnect) withError: nil, isFullReconnect: false 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient.cleanUp(withError:) withError: nil 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.cleanUpParticipants(isFullReconnectnotify) notify: true Room Connection State: .disconnected 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Broadcast stopped 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.init(delegateconnectOptionsroomOptions:) connectionState: .disconnected -> .connecting, reconnectMode: nil 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.connect(urltokenconnectOptionsroomOptions) Concurrent enable microphone mode: true 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient.cleanUp(withError:) withError: nil Connection state changed: .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] ConnectivityListener.init() initial path: none, has: false Room Connection State: .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient.connect(_ connectOptionsreconnectModeparticipantSidadaptiveStream) Connecting with url: wss://[YOUR_LIVEKIT_DOMAIN]/rtc?access_token=[YOUR_ACCESS_TOKEN]&protocol=12&sdk=swift&version=2.6.1&os=iOS&os_version=18.5&device_model=[DEVICE_MODEL]&auto_subscribe=1&adaptive_stream=0 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient.init() .disconnected -> .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] ConnectivityListener.set(pathnotify) status: satisfied, interfaces: ["wifi-27", "cellular-2"], gateways: [[GATEWAY_IP]:0, fe80:da07b6fffe718904%en0%en0.0], activeIp: Optional("[LOCAL_IP]") 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient.connect(_ connectOptionsreconnectModeparticipantSidadaptiveStream) Did enter WebSocket message loop... 2025-07-28T093538-0700 info LiveKitSDK: [LiveKit] Room.signalClient(_didReceiveConnectResponse) ServerInfo(edition: standard, version: 1.9.0, protocol: 16, region: , nodeID: [NODE_ID], debugInfo: ) 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] AsyncCompleter.wait(timeout:) Join response id: [COMPLETER_ID] waiting for milliseconds(7000) 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient._restartPingTimer() ping/pong starting with interval: 5, timeout: 15 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] SignalClient.init() .connecting -> .connected 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] LocalParticipant.set(enabledPublishCodecs:) enabledPublishCodecs: video/VP8, video/H264, video/VP9, video/AV1, audio/opus, audio/red Room Connection State: .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.configureTransports(connectResponse:) Configuring transports with JOIN response... 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.configureTransports(connectResponse:) subscriberPrimary: true 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Transport.init(configtargetprimarydelegate) 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Transport.peerConnectionShouldNegotiate(_:) ShouldNegotiate for publisher 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.signalClient(_didReceiveOffer) Received offer, creating & sending answer... 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] AsyncCompleter<()>.wait(timeout:) Primary transport connect id: [COMPLETER_ID] waiting for milliseconds(10000) 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.transport(_didGenerateIceCandidate) sending iceCandidate 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Transport.peerConnection(_didChange) [Connect] Transport(subscriber) did update state: .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.transport(_didUpdateState) target: subscriber, connectionState: .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Transport.peerConnection(_didChange) [Connect] Transport(publisher) did update state: .connecting 2025-07-28T093538-0700 debug LiveKitSDK: [LiveKit] Room.transport(_didUpdateState) target: publisher, connectionState: .connecting 2025-07-28T093541-0700 debug LiveKitSDK: [LiveKit] Room.signalClient(_didUpdateParticipants) participants: [LiveKit.Livekit_ParticipantInfo: sid: "[PARTICIPANT_SID]" identity: "[PARTICIPANT_IDENTITY]" state: JOINED] Room Connection State: .connecting 2025-07-28T093548-0700 debug LiveKitSDK: [LiveKit] AsyncCompleter<()>.wait(timeout:) Primary transport connect id: [COMPLETER_ID] timed out 2025-07-28T093548-0700 warning LiveKitSDK: [LiveKit] LocalAudioTrack.stop() Already stopped 2025-07-28T093548-0700 debug LiveKitSDK: [LiveKit] Room.cleanUp(withErrorisFullReconnect) withError: Optional(Error Domain=io.livekit.swift-sdk Code=101 "Timed out" UserInfo={NSLocalizedDescription=Timed out}), isFullReconnect: false 2025-07-28T093548-0700 debug LiveKitSDK: [LiveKit] SignalClient.cleanUp(withError:) withError: Optional(Error Domain=io.livekit.swift-sdk Code=101 "Timed out" U… livekit/client-sdk-swift
  • m

    microscopic-jackal-49366

    07/28/2025, 2:05 AM
    #3823 Update livekit deps - autoclosed Pull request opened by renovate[bot] This PR contains the following updates: | Package | Type | Update | Change | | --------------------------------------------------------------------------- | ------- | ------ | ------------------ | | [github.com/livekit/protocol](https://redirect.github.com/livekit/protocol) | require | digest | 7313a81 -> 1b7e38e | | [github.com/livekit/psrpc](https://redirect.github.com/livekit/psrpc) | require | digest | 262a822 -> 3915e00 | --- ### Configuration 📅 Schedule: Branch creation - "before 6am on monday" (UTC), Automerge - At any time (no schedule defined). 🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied. ♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired. --- • If you want to rebase/retry this PR, check this box --- This PR was generated by Mend Renovate. View the repository job log. livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/29/2025, 12:11 AM
    #3373 Initial connection failed with ConnectionError: could not establish pc connection. Issue created by pstoebenau Describe the bug I'm getting an error connecting to a room sometimes on node.js/bun. I'm always able to connect eventually but it seems random when the connection fails. It takes about 15 seconds for it to fail connecting to the first server, but it connects after that. Sometimes it connects straight away and others it fails twice before connecting.
    Copy code
    Initial connection failed with ConnectionError: could not establish pc connection. Retrying with another region: https://[...].production.livekit.cloud {
      room: "VuPeerServer-5fe3",
      roomID: "RM_9JutvJx8QVYW",
      participant: "VuOS-5fe3",
      pID: "PA_Jf4ioNmHpFrD",
    }
    Server • Version: Cloud • Environment: Cloud Client • SDK: js (using WebRTC polyfills) • Version: 2.8.1 To Reproduce Steps to reproduce the behavior: 1. Create access token 2. Use access token to connect to room 3. See error Expected behavior LiveKit connects without issue on first try. Additional context This is running in the bun runtime which doesn't natively support WebRTC. I added a WebRTC polyfill that I've used successfully with other WebRTC libraries. livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/29/2025, 12:50 AM
    #563 Add prepareConnection function to warm up some parts of the SDK Issue created by tamimattafi Is your feature request related to a problem? Please describe. Sometimes connection attempts take a little longer than usual. Maybe a pre-warm up could help is some cases. Describe the solution you'd like The Android SDK has this function: prepareConnection. Something similar would be appreciated. livekit/client-sdk-swift
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/29/2025, 7:51 AM
    #3824 Late joiner cannot see published tracks / trackSubscribed not firing Issue created by niezhicheng Title: Late joiner cannot see published tracks / trackSubscribed not firing Describe the bug When a new participant (e.g., a teacher) joins a room after other participants (e.g., students) have already published video tracks (screen sharing), the late joiner does not receive any trackSubscribed events, and remoteParticipants.tracks is empty. As a result, the teacher cannot see the students' screens unless the teacher joins the room before the students. To Reproduce Steps to reproduce the behavior: Student joins the room and publishes a screen sharing video track. Teacher joins the same room later (after the student has already published). Teacher does not receive trackSubscribed for the student's track, and cannot see the student's video. room.remoteParticipants contains the student, but participant.tracks is empty or undefined. Expected behavior Late joiners should automatically receive all currently published tracks in the room, and trackSubscribed should fire for each. The teacher should be able to see all students' screens regardless of join order. Environment livekit-server version: 1.9.0 (Docker, latest available) livekit-client version: 2.15.3 (npm, latest available) Deployment: Self-hosted, Docker Browser: Chrome (latest), also tested on Edge/Firefox Token: Generated via Go backend, with RoomJoin: true, correct room/identity Additional context If the teacher joins the room first, then students join and publish, everything works as expected. If the teacher joins after students have already published, the teacher cannot see any student video. I have tried all recommended client-side workarounds (manual subscribe, event listeners, etc.), but the issue persists. This is blocking for real-time exam monitoring scenarios, where the teacher may join after students have started sharing their screens. There are no errors in the browser console or server logs; the WebSocket connection is healthy. Steps already tried Upgraded both server and client to the latest available versions. Confirmed all network ports are open and accessible. Used both local and cloud deployments. Attempted to manually subscribe to all publications on the teacher side. Tried LiveKit official demo with the same result. Request Please investigate and fix the issue where late joiners do not receive already published tracks. If you need more logs or a minimal reproduction, I can provide them. livekit/livekit
  • m

    microscopic-jackal-49366

    07/29/2025, 8:45 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by anunaym14
    <https://github.com/livekit/livekit/commit/5e483e7554e5afbf254acf84e3ec0aa6e108e758|5e483e75>
    - update readme (#3809) livekit/livekit
  • m

    microscopic-jackal-49366

    07/29/2025, 9:15 AM
    #3825 curl -sSL https://get.livekit.io | bash has problem Issue created by zs1040466634 Installing livekit 1.9.0] [<=> ] Downloading from https://github.com/livekit/livekit/releases/download/v1.9.0/livekit_1.9.0_linux_amd64.tar.gz... 138 B 00137 [ 0 B/s] [ <=> ] gzip: stdin: unexpected end of file tar: Child returned status 1 tar: Error is not recoverable: exiting now livekit/livekit
  • m

    microscopic-jackal-49366

    07/29/2025, 10:36 AM
    #3826 Trouble connecting TURN server with LiveKit v1.9.0 using external-ip (self-hosted on Docker) Issue created by saurabhwadekar Hello LiveKit team 👋, I’m trying to self-host LiveKit v1.9.0 on my local server using Docker, but I’m facing consistent problems with TURN server configuration and external IP detection. 🧑‍💻 Setup Details: LiveKit Version: 1.9.0 Deployment Type: Docker Compose (local) Redis: Connected and working TURN Server: coturn Network: Mobile Hotspot (testing from Android hotspot to test NAT traversal) Docker Host External IP: 152.56.1.150 (from mobile hotspot) --- 🔧 TURN Server Configuration (coturn): turnserver.conf: listening-port=3478 fingerprint lt-cred-mech realm=livekit user=test:123456 external-ip=10.252.79.86/152.56.1.150 Also tried: external-ip=152.56.1.150 📄 LiveKit config.yaml: port: 7880 rtc: port_range_start: 50000 port_range_end: 60000 use_external_ip: true enable_loopback_candidate: true stun_servers: - stun.l.google.com:19302 turn: enabled: true host: 152.56.1.150 port: 3478 username: test password: 123456 tls: false udp: true turn_server_name: livekit keys: my_api_key: "5e0b345c721a2cf8d8e6a2e1c1b9f3a7" redis: address: redis-server:6379 logging: level: debug --- 📜 Docker Logs (Errors): INFO livekit redis/redis.go:142 connecting to redis {"simple": true, "addr": "redis-server:6379"} INFO livekit rtcconfig/webrtc_config.go:276 failed to get external ip {"local": "127.0.0.1", "err": "dial udp4 127.0.0.155900 &gt;10.252.79.863478: connect: invalid argument"} WARN livekit rtcconfig/ip.go:272 could not validate external IP {"ip": "152.56.1.150", "error": "context canceled"} INFO livekit rtcconfig/webrtc_config.go:276 failed to get external ip {"local": "172.17.0.5", "err": "context canceled"} INFO livekit rtcconfig/webrtc_config.go:99 no external IPs found, using node IP for NAT1To1Ips {"ip": "152.56.1.150"} ERROR TURN tls cert required: open : no such file or directory --- ❓ Problems Faced: 1. LiveKit fails to detect the external IP from the TURN server (failed to get external ip). 2. I’ve used both external-ip and NAT mappings in coturn, but the error persists. 3. When turn is enabled, LiveKit expects a TLS cert even when tls: false is set. 4. context canceled appears during NAT IP validation. 5. I am using mobile hotspot for testing connectivity, to simulate NAT and see how WebRTC behaves behind NATs. But TURN negotiation doesn’t succeed. --- 💡 What I’ve Tried: Using only STUN: works but doesn't help in restricted networks. Used coturn directly and tested with trickle ICE — TURN works standalone. Verified that redis, coturn, and LiveKit are all reachable inside Docker network. Tried both IPs in external-ip — still fails. Validated that port 3478 is open and reachable externally. --- 🙏 Request: Please help me debug why LiveKit is unable to detect external IP via TURN and how I can get TURN working without TLS (just UDP or plain TCP). A working sample TURN + config.yaml for Docker setup would be really helpful. Let me know if logs or further config files are needed. Thank you for the amazing project! 🙏 livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/30/2025, 9:54 AM
    #1535 Issue#685 - Restructure Node Selector Pull request opened by pgokul on <!date^1679387214^{date_short}|2023-03-21T08:26:54Z> 1. Add support for selecting a node for meeting or for draining as a selection argument 2. Add support for hard limits for cpu and sysload. 3. Add support for selector chaining. Selectors can now be chained to create more complex selectors out of simple basic ones 4. Add config changes to allow specifying multiple node selectors to be chained livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/30/2025, 1:38 PM
    #748 SIP Call Issue Call Active Status received Randomly Before Accept the GSM call User Issue created by ChandruContus Describe the bug The caller is an app user who initiates a SIP call. A SIP call request is sent to our server, which then creates a SIP participant using LiveKit's provided API. After the SIP participant is created, the call progresses through the "dialing" and "ringing" states, which are updated in the SDK via participant attributes. However, in some cases, before the GSM user accepts the incoming call, the LiveKit SDK receives the participant's state as "active", even though the call has not been answered yet. I received Attribute mentioned here update { participants { attributes { key: "sip.callID" value: "SCL_4HGBQk3GL3RX" } attributes { key: "sip.callStatus" value: "dialing" } attributes { key: "sip.phoneNumber" value: "+916380364624" } attributes { key: "sip.trunkID" value: "ST_vXR8KmGbUgQ8" } attributes { key: "sip.trunkPhoneNumber" value: "+16205829929" } identity: "+916380364624" is_publisher: true joined_at: 1753354703 joined_at_ms: 1753354703388 kind: SIP kind_value: 3 name: "User +916380364624" permission { can_publish: true can_publish_data: true can_subscribe: true can_update_metadata: true } sid: "PA_G4k7sj4iPYPr" state: ACTIVE state_value: 2 tracks { mid: "0" mime_type: "audio/opus" name: "+916380364624" sid: "TR_AMsc68LwSfnHgh" source: MICROPHONE source_value: 2 stream: "camera" version { unix_micro: 1753354704439127 } } version: 4 } } update { participants { attributes { key: "sip.trunkID" value: "ST_vXR8KmGbUgQ8" } attributes { key: "sip.trunkPhoneNumber" value: "+16205829929" } attributes { key: "sip.callID" value: "SCL_4HGBQk3GL3RX" } attributes { key: "sip.callStatus" value: "ringing" } attributes { key: "sip.phoneNumber" value: "+916380364624" } identity: "+916380364624" is_publisher: true joined_at: 1753354703 joined_at_ms: 1753354703388 kind: SIP kind_value: 3 name: "User +916380364624" permission { can_publish: true can_publish_data: true can_subscribe: true can_update_metadata: true } sid: "PA_G4k7sj4iPYPr" state: ACTIVE state_value: 2 tracks { mid: "0" mime_type: "audio/opus" name: "+916380364624" sid: "TR_AMsc68LwSfnHgh" source: MICROPHONE source_value: 2 stream: "camera" version { unix_micro: 1753354704439127 } } version: 6 } } update { participants { attributes { key: "sip.trunkID" value: "ST_vXR8KmGbUgQ8" } attributes { key: "sip.callIDFull" value: "zcp0hHHI5uhQMFUOCDeEmKfQSuC" } attributes { key: "sip.twilio.callSid" value: "CAe6fad13b24c2648323d8cf06ec0ec185" } attributes { key: "sip.callTag" value: "58473074_c3356d0b_8a2d9621-43b9-4c34-a125-5ee7c192eab2" } attributes { key: "sip.callID" value: "SCL_4HGBQk3GL3RX" } attributes { key: "sip.trunkPhoneNumber" value: "+16205829929" } attributes { key: "sip.callStatus" value: "active" } attributes { key: "sip.phoneNumber" value: "+916380364624" } identity: "+916380364624" is_publisher: true joined_at: 1753354703 joined_at_ms: 1753354703388 kind: SIP kind_value: 3 name: "User +916380364624" permission { can_publish: true can_publish_data: true can_subscribe: true can_update_metadata: true } sid: "PA_G4k7sj4iPYPr" state: ACTIVE state_value: 2 tracks { mid: "0" mime_type: "audio/opus" name: "+916380364624" sid: "TR_AMsc68LwSfnHgh" source: MICROPHONE source_value: 2 stream: "camera" version { unix_micro: 1753354704439127 } } version: 8 } } To Reproduce Randomly occurred Expected behavior Before Answer call, The Call Active status should not receive to the Caller Device Info: any iOS devices livekit/client-sdk-swift
  • m

    microscopic-jackal-49366

    07/30/2025, 6:27 PM
    #3827 Gladia STT returns 400 bad request Issue created by ibragimazizli Describe the bug STT Gladia integtration returns 400 bad request Server • Version:latest • Environment: dev Client • SDK: python • Version: latest To Reproduce use Gladia for STT
    Copy code
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 853, in _init_live_session
       res.raise_for_status()
       ~~~~~~~~~~~~~~~~~~~~^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/aiohttp/client_reqrep.py", line 629, in raise_for_status
       raise ClientResponseError(
       ...<5 lines>...
       )
    aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url='<https://api.gladia.io/v2/live>'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/stt/stt.py", line 251, in _main_task
       return await self._run()
              ^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 795, in _run
       session_info = await self._init_live_session()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 857, in _init_live_session
       raise APIConnectionError(f"Failed to initialize Gladia session: {str(e)}") from e
    livekit.agents._exceptions.APIConnectionError: Failed to initialize Gladia session: 400, message='Bad Request', url='<https://api.gladia.io/v2/live>' (body=None, retryable=True) {"tts": "livekit.plugins.gladia.stt.STT", "attempt": 2, "streamed": true, "pid": 43736, "job_id": "AJ_e6sWbLrcgVwQ"}
    [DEBUG] Participant disconnected: sip_+18148852422, kind: 3
    [DEBUG] SIP participant disconnected, setting disconnect event
    2025-07-30 22:23:18,887 - DEBUG livekit.agents - stream closed {"participant": "sip_+18148852422", "source": "SOURCE_MICROPHONE", "pid": 43736, "job_id": "AJ_e6sWbLrcgVwQ"}
    2025-07-30 22:23:20,503 - ERROR livekit.agents - AgentSession is closing due to unrecoverable error
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 853, in _init_live_session
       res.raise_for_status()
       ~~~~~~~~~~~~~~~~~~~~^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/aiohttp/client_reqrep.py", line 629, in raise_for_status
       raise ClientResponseError(
       ...<5 lines>...
       )
    aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url='<https://api.gladia.io/v2/live>'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/stt/stt.py", line 251, in _main_task
       return await self._run()
              ^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 795, in _run
       session_info = await self._init_live_session()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 857, in _init_live_session
       raise APIConnectionError(f"Failed to initialize Gladia session: {str(e)}") from e
    livekit.agents._exceptions.APIConnectionError: Failed to initialize Gladia session: 400, message='Bad Request', url='<https://api.gladia.io/v2/live>' (body=None, retryable=True) {"pid": 43736, "job_id": "AJ_e6sWbLrcgVwQ"}
    2025-07-30 22:23:20,505 - ERROR livekit.agents - Error in _stt_task
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 853, in _init_live_session
       res.raise_for_status()
       ~~~~~~~~~~~~~~~~~~~~^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/aiohttp/client_reqrep.py", line 629, in raise_for_status
       raise ClientResponseError(
       ...<5 lines>...
       )
    aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url='<https://api.gladia.io/v2/live>'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/stt/stt.py", line 251, in _main_task
       return await self._run()
              ^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 795, in _run
       session_info = await self._init_live_session()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/plugins/gladia/stt.py", line 857, in _init_live_session
       raise APIConnectionError(f"Failed to initialize Gladia session: {str(e)}") from e
    livekit.agents._exceptions.APIConnectionError: Failed to initialize Gladia session: 400, message='Bad Request', url='<https://api.gladia.io/v2/live>' (body=None, retryable=True)
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/utils/log.py", line 16, in async_fn_logs
       return await fn(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/voice/audio_recognition.py", line 452, in _stt_task
       async for ev in node:
       ...<3 lines>...
           await self._on_stt_event(ev)
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/voice/agent.py", line 352, in stt_node
       async for event in stream:
           yield event
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/stt/stt.py", line 370, in __anext__
       raise exc  # noqa: B904
       ^^^^^^^^^
     File "/Users/ibrahimebdulezizli/Documents/Development/livekittests/venv/lib/python3.13/site-packages/livekit/agents/stt/stt.py", line 258, in _main_task
       raise APIConnectionError(
           f"failed to recognize speech after {self._num_retries} attempts",
       ) from e
    livekit/livekit
    • 1
    • 2
  • m

    microscopic-jackal-49366

    07/31/2025, 12:29 AM
    #3376 Feature: New Webhook event if participant leaves before fully joining Issue created by keon94 Hello there. We have a server to manage state and history of Livekit calls. The corner case we have seen at times is that if a user joins the room and almost immediately disconnects (within a few hundred milliseconds, say), Livekit cleans up that connection internally and nobody in the room gets notified. This causes a problem for us because our server is expecting an event from Livekit to be able to update the state of the call; and until then, it will assume the call should remain in progress. What we need is some kind of signal that this user hung up the connection so we can end the call (a state update) on our end. My suggestion is for Livekit to send a Webhook event (participant_hungup, for example) in such a case. Thank you Environment: Self-Hosted Livekit server, v1.8.2 livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/31/2025, 6:04 AM
    #3176 Integration with my own STT and TTS Issue created by cod3r0k on <!date^1731608479^{date_short}|2024-11-14T18:21:19Z> Hi, I use faster-whisper (https://github.com/SYSTRAN/faster-whisper) and I want to replace it with STT module in livekit. Also, I use Coqui (https://github.com/coqui-ai/TTS) for TTS and I want to replace it with TTS as served in livekit locally. Could you guide me how to do it for integration? livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    07/31/2025, 10:41 AM
    #3828 Running ollma model: llama3.1 locally without openai Issue created by JBS-cap i am not able to run the ollma model llama3.1 locally without openai key. I have tried modifying llm.py but its not working. Any suggestion/help in this regard will be appreciated. thanks livekit/livekit
  • m

    microscopic-jackal-49366

    08/01/2025, 12:34 AM
    #3386 Running generator in podman does not produce any configuration files Issue created by apastuszak Describe the bug I'm trying to run the Livekit config generator and it does not produce any output files. Server • Version: Fedora Linux Fedora release 40 (Forty) • Environment: podman 5.3.1 • any other information about your deployment setup Client None To Reproduce Steps to reproduce the behavior: Run the command from the documentation in a local terminal Expected behavior Config files should get generated and placed in $PWD, but they're not./ I see this issue got reported twice before: #570 and #539 Both issues are closed with no resolution. The script runs for me and I answer all the questions, but there are no output files. The "recommended" podman method in Issue 539 produces no output files and using the :Z option throws a SELinux error. livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    08/01/2025, 1:11 AM
    #546 How can I send chat message in Swift like chat.ts and sendmessge on web side? Issue created by peng2219 Is your feature request related to a problem? Please describe. hi, team, on agent side, I use chat and message_received to handle message as below. How can I send message on iOS with Swift sdk? I tried localParticipant.publish, but failed. In web client sdk, there is chat.ts and sendmessge, but I can't find similar one in Swift sdk. Thanks! chat = rtc.ChatManager(ctx.room) @chat.on("message_received") def on_chat_received(msg: rtc.ChatMessage): # handle msg Describe the solution you'd like offer an chat and sendmessage in Swift please livekit/client-sdk-swift
    • 1
    • 1
  • m

    microscopic-jackal-49366

    08/01/2025, 9:35 AM
    #2009 Help in - could not handle new participant - error log Issue created by imredobos on <!date^1693297126^{date_short}|2023-08-29T08:18:46Z> Describe the bug I got the following error in Livekit, and I need help to understand what can cause this issue. Also partial reconnect happens, because audio track was fine. ERROR livekit routing/redisrouter.go:302 could not handle new participant {"room": "5l62r6qop6vf1gik", "participant": "1shmcyqe3jjffxvf", "error": "could not restart participant", "errorVerbose": "could not restart participant\ngithub.com/livekit/livekit-server/pkg/service.(*RoomManager).StartSession\n\t/workspace/pkg/service/roommanager.go:317\ngithub.com/livekit/livekit-server/pkg/routing.(*RedisRouter).startParticipantRTC.func1\n\t/workspace/pkg/routing/redisrouter.go294\nruntime.goexit\n\t/usr/local/go/src/runtime/asm amd64.s1598"} github.com/livekit/livekit-server/pkg/routing.(*RedisRouter).startParticipantRTC.func1 /workspace/pkg/routing/redisrouter.go:302 I did not see any error in redis. Server • Version: 1.4.5 • Environment: EKS Client • SDK: js • Version: 1.13.0 To Reproduce Steps to reproduce the behavior: 1. two clients are connected to room 2. one participant disconnects probably because of network issues 3. the participant tries to reconnect 4. See error Expected behavior Participant reconnect happens successfully. livekit/livekit
    • 1
    • 1
  • m

    microscopic-jackal-49366

    08/01/2025, 1:20 PM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/db4bc127e87b772c066d3325a1a6d3310eaeb0ec|db4bc127>
    - Get to the point of connecting publisher PC and using it for async signalling (#3822) livekit/livekit
  • m

    microscopic-jackal-49366

    08/02/2025, 9:35 AM
    #3829 Rename RTCRest -&gt; WHIP Pull request opened by boks1971 livekit/livekit
    • 1
    • 2
  • m

    microscopic-jackal-49366

    08/02/2025, 11:09 AM
    #3830 Cannot connect to LiveKit From OBS Issue created by h0riz4n I configured livekit-ingress like this
    Copy code
    api_key: key1
    api_secret: secret1
    ws_url: <ws://livekit-server:7880>
    
    redis:
      address: redis:6379
      username: admin
      password: admin
      db: 0
      use_tls: false
      max_redirects: null
    
    rtmp_port: 1935
    whip_port: 8080
    http_relay_port: 9090
    
    logging:
      json: false
      level: debug
    
    development: true
    rtc_config:
        udp_port: 7885
        use_external_ip: true
        enable_loopback_candidate: false
    
    # cpu_cost:
    #   rtmp_cpu_cost: 2.0
    #   whip_cpu_cost: 2.0
    And configured livekit-server in this way
    Copy code
    port: 7880
    
    redis:
      address: redis:6379
      username: admin
      password: admin
      db: 0
    
    rtc:
      port_range_start: 5000
      port_range_end: 5010
      tcp_port: 7881
      use_external_ip: false
      enable_loopback_candidate: false
    
    keys:
      key1: secret1
    
    logging:
      level: info
    
    room:
      max_participants: 10
      enabled_codecs:
        - mime: audio/opus
        - mime: video/vp8
      enable_remote_unmute: true
    
    turn:
      enabled: false
    
    ingress:
      rtmp_base_url: rtmp:///localhost:1935/live
      whip_base_url: <http://livekit-ingress:8080/w>
    And I am trying to connect OBS studio to livekit. When i'm connecting to livekit-server obs automatically close session, but when i'm trying to connect to livekit-ingress i had error in logs
    Copy code
    time="2025-08-02T11:04:53Z" level=info msg="Change state: From = <Unknown>, To = NotConnected(Server)" logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Handle SetChunkSize: Msg = &message.SetChunkSize{ChunkSize:0x1000}" logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg=Connect logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Set win ack size: Size = 2147483647" logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Set peer bandwidth: Size = 786432, Limit = 0" logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Stream Begin: ID = 0" logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Connect: ResponseBody = &message.NetConnectionConnectResult{Properties:message.NetConnectionConnectResultProperties{FMSVer:\"GO-RTMP/0,0,0,0\", Capabilities:31, Mode:1}, Information:message.NetConnectionConnectResultInformation{Level:\"status\", Code:\"NetConnection.Connect.Success\", Description:\"Connection succeeded.\", Data:amf0.ECMAArray{\"type\":\"go-rtmp\", \"version\":\"master\"}}}" logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg=Connected logger=ingress nodeID=NE_tghzbUVxffT3 state="NotConnected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Change state: From = NotConnected(Server), To = Connected(Server)" logger=ingress nodeID=NE_tghzbUVxffT3 state="Connected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Release stream...: StreamName = TfEcHgFGtzSi" logger=ingress nodeID=NE_tghzbUVxffT3 state="Connected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="FCPublish stream...: StreamName = TfEcHgFGtzSi" logger=ingress nodeID=NE_tghzbUVxffT3 state="Connected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Stream creating...: &message.NetConnectionCreateStream{}" logger=ingress nodeID=NE_tghzbUVxffT3 state="Connected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Change state: From = <Unknown>, To = Inactive(Server)" logger=ingress nodeID=NE_tghzbUVxffT3 state="Inactive(Server)" stream_id=1
    time="2025-08-02T11:04:54Z" level=info msg="Stream created...: NewStreamID = 1" logger=ingress nodeID=NE_tghzbUVxffT3 state="Connected(Server)" stream_id=0
    time="2025-08-02T11:04:54Z" level=info msg="Publisher is comming: &message.NetStreamPublish{CommandObject:interface {}(nil), PublishingName:\"TfEcHgFGtzSi\", PublishingType:\"live\"}" logger=ingress nodeID=NE_tghzbUVxffT3 state="Inactive(Server)" stream_id=1
    2025-08-02T11:04:55.093Z        INFO    ingress service/service.go:283  failed retrieving ingress info  {"nodeID": "NE_tghzbUVxffT3", "streamKey": "TfEcHgFGtzSi", "error": "no response from servers"}
    time="2025-08-02T11:04:55Z" level=info msg="Reject a Publish request: Response = &message.NetStreamOnStatus{InfoObject:message.NetStreamOnStatusInfoObject{Level:\"error\", Code:\"NetStream.Publish.Failed\", Description:\"Publish failed.\"}}, Err = no response from servers" logger=ingress nodeID=NE_tghzbUVxffT3 state="Inactive(Server)" stream_id=1
    time="2025-08-02T11:04:55Z" level=info msg="Server closed by error: Err = no response from servers" logger=ingress nodeID=NE_tghzbUVxffT3
    2025-08-02T11:04:55.093Z        INFO    ingress rtmp/server.go:355      closing ingress RTMP session    {"nodeID": "NE_tghzbUVxffT3", "streamKey": "TfEcHgFGtzSi", "resourceID": "RT_rgJ5tBsawFHZ"}
    I run livekit-server and livekit-ingress in docker container, when i am connecting livekit-server to redis i had this error by the way ``` 2025-08-02T110503.548Z ERROR livekit routing/redisrouter.go:216 status update delayed, possible deadlock {"delay": 30.548190705, "goroutines": "goroutine 210 [running]:\nruntime/pprof.writeGoroutineStacks({0x1d96600, 0xc001b08690})\n\t/usr/local/go/src/runtime/pprof/pprof.go:764 +0x6a\nruntime/pprof.writeGoroutine({0x1d96600?, 0xc001b08690?}, 0x20acb9f1?)\n\t/usr/local/go/src/runtime/pprof/pprof.go:753 +0x25\nruntime/pprof.(*Profile).WriteTo(0x1b0a841?, {0x1d96600?, 0xc001b08690?}, 0xc000011780?)\n\t/usr/local/go/src/runtime/pprof/pprof.go:377 +0x14b\ngithub.com/livekit/livekit-server/pkg/routing.(*RedisRouter).statsWorker(0xc0000ea410)\n\t/workspace/pkg/routing/redisrouter.go:215 +0x257\ncreated by github.com/livekit/livekit-server/pkg/routing.(*RedisRouter).Start in goroutine 1\n\t/workspace/pkg/routing/redisrouter.go:178 +0x7f\n\ngoroutine 1 [chan receive]:\ngithub.com/livekit/livekit-server/pkg/service.(*LivekitServer).Start(0xc0005293b0)\n\t/workspace/pkg/service/server.go:299 +0x10b6\nmain.startServer(0xc0004586c0)\n\t/workspace/cmd/server/main.go:296 +0x29d\ngithub.com/urfave/cli/v2.(*Command).Run(0xc0001bd4a0, 0xc0004586c0, {0xc000152120, 0x6, 0x6})\n\t/go/pkg/mod/github.com/urfave/cli/v2@v2.27.5/command.go:276 +0x7be\ngithub.com/urfave/cli/v2.(*App).RunContext(0xc000254e00, {0x1dacf68, 0x2c4c0e0}, {0xc000152120, 0x6, 0x6})\n\t/go/pkg/mod/github.com/urfave/cli/v2@v2.27.5/app.go:333 +0x5a5\ngithub.com/urfave/cli/v2.(*App).Run(...)\n\t/go/pkg/mod/github.com/urfave/cli/v2@v2.27.5/app.go:307\nmain.main()\n\t/workspace/cmd/server/main.go:185 +0x5c8\n\ngoroutine 79 [select]:\ngithub.com/livekit/protocol/utils/hwstats.(*CPUStats).monitorCPULoad(0xc000051980)\n\t/go/pkg/mod/github.com/livekit/protocol@v1.39.1-0.20250604205715-2227c44329ee/utils/hwstats/cpu.go:115 +0xb6\ncreated by github.com/livekit/protocol/utils/hwstats.NewCPUStats in goroutine 1\n\t/go/pkg/mod/github.com/livekit/protocol@v1.39.1-0.20250604205715-2227c44329ee/utils/hwstats/cpu.go:65 +0x159\n\ngoroutine 98 [IO wait]:\ninternal/poll.runtime_pollWait(0x7f389fd81f38, 0x72)\n\t/usr/local/go/src/runtime/netpoll.go:351 +0x85\ninternal/poll.(*pollDesc).wa… livekit/livekit
  • m

    microscopic-jackal-49366

    08/02/2025, 10:30 PM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/5751692a2f1472a8768cd227571f161b4c86a2a0|5751692a>
    - deps (#3829) livekit/livekit
  • m

    microscopic-jackal-49366

    08/04/2025, 8:08 AM
    #745 Update webrtc to m137 Pull request opened by pblazej on <!date^1753431660^{date_short}|2025-07-25T08:21:00Z> livekit/client-sdk-swift
    • 1
    • 1
  • m

    microscopic-jackal-49366

    08/04/2025, 8:32 AM
    #3831 Fix: RingingTimeout was being skipped for transferParticipant Pull request opened by nishadmusthafa We weren't relaying the RingingTimeout for transferSipParticipant. This fixes that livekit/livekit
    • 1
    • 2
  • m

    microscopic-jackal-49366

    08/04/2025, 9:40 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by nishadmusthafa
    <https://github.com/livekit/livekit/commit/1fe337160a84df4094429881b33e9e7ccc14bf42|1fe33716>
    - Fix: RingingTimeout was being skipped for transferParticipant (#3831) livekit/livekit
  • m

    microscopic-jackal-49366

    08/04/2025, 9:45 AM
    #3832 Hidden participants can't call RPC methods. Issue created by F1nnM Participants with the token grant "hidden" cannot call RPC calls. If they attempt to do so, the calls result in a "Connection Timeout". This is either a bug, or should be explicitly documented and/or it should result in a better error message. Server • Version: 1.9.0 • Environment: local dev Client • JS Client: 2.15.2 • JS Server SDK: 2.13.1 To Reproduce 1. Create a room 2. Join Room with participant A. 3. Participant A registers a RPC method. 4. Join room with participant B. B has set "hidden: true". 5. Call RPC method with participant B. -> B gets a "Connection Timeout" and the method is never called. Expected behavior The RPC function should be executed without error. Alternatively: The error message should be clear on it being a permissions/role/hidden problem. livekit/livekit