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

    brave-belgium-55743

    11/12/2025, 7:19 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/a04d9c48a544ee91ab1c7c1bf7872d59d9038828|a04d9c48>
    - Revert pion/transpor to v3.0.8 (#4073) livekit/livekit
  • b

    brave-belgium-55743

    11/12/2025, 7:40 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/f4929f099e41800ed19fb5e5dd2a234fd8695881|f4929f09>
    - Revert "Revert pion/transpor to v3.0.8 (#4073)" (#4074) livekit/livekit
  • b

    brave-belgium-55743

    11/12/2025, 9:18 AM
    #4075 Failed to ping without candidate pairs. Connection is not possible yet Issue created by dev1-dylan I can't stream WHIP [Image](https://private-user-images.githubusercontent.com/181685274/513215143-7593603b-62f8-4d7b-ab84-e80a6dfa6774.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjI5Mzk0MzQsIm5iZiI6MTc2MjkzOTEzNCwicGF0aCI6Ii8xODE2ODUyNzQvNTEzMjE1MTQzLTc1OTM2MDNiLTYyZjgtNGQ3Yi1hYjg0LWU4MGE2ZGZhNjc3NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTExMlQwOTE4NTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMjQ4NTE5MDMzZTA0MjIzNzI0ZTkwYjNhMDg1ZDFhNDk2MDM1OTk0ZjM2OWQ4YTg2MmVmZTM2MTFiOTg5MGZiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.uD9Odgs_S72yLP2F3yzBDAWd5Zl5w7k5XQQ4wKR2dEI) livekit/livekit
  • b

    brave-belgium-55743

    11/12/2025, 2:40 PM
    #840 Agent derived states Pull request opened by pblazej • Adds more computed
    is_
    props to the (private for now) agent state • JS livekit/components-js#1231 •
    buffering
    state was already handled inside the
    .connecting
    enum case (associated value is less error-prone) • Adds disconnected == failed concept • JS livekit/components-js#1228 • Checks actual dispatch response when waiting for the agent • JS livekit/components-js#1226 livekit/client-sdk-swift
    • 1
    • 2
  • b

    brave-belgium-55743

    11/12/2025, 3:24 PM
    #4076 Can't set prompt name and prompt version on an `llm_request` generation inside of the `llm_node` function Issue created by rbl-timuvlad Goal: I want to be able to link generations to prompts in Langfuse using Livekit Agents. What I tried: When using a STT->LLM-TTS and overriding the
    llm_node
    function I use the following code to set the prompt name and prompt version for observability current_span = trace.get_current_span() if current_span: current_span.set_attributes( { "langfuse.observation.prompt.name": self._app_settings.system_prompt_name, "langfuse.observation.prompt.version": self._app_settings.system_prompt_version, } ) although this correctly sets the prompt name and version on the
    llm_node
    span, Langfuse won't link that span to the specified prompt because it can only do that with generations (as per documentation https://langfuse.com/docs/prompt-management/get-started#link-with-langfuse-tracing-optional) and not spans. Question: Has anyone else stumbled on this? How did you solve it? livekit/livekit
  • b

    brave-belgium-55743

    11/12/2025, 3:47 PM
    #4077 Inconsistent value set for `env` attribute on nested spans compared to `job_entrypoint` spans Issue created by rbl-timuvlad Describe the bug When using the exampe from https://docs.livekit.io/agents/build/metrics/#enabling-telemetry the value set for
    langfuse.environment.name
    is correctly displayed as an attribute of the
    job_entrypoint
    trace and span in langfuse UI. However, the
    Env
    attribute on all other nested spans logged by livekit (i.e.
    llm_request
    generation) is not set in accordance with the value set for
    langfuse.environment.name
    but is set to the string
    default
    . Server • Version: https://hub.docker.com/r/livekit/livekit-server • Environment: local • Run using a docker image with
    livekit/livekit-server:master
    Client • SDK: Python • Version: 1.2.8 To Reproduce Steps to reproduce the behavior: 1. an agent connects to the room (agent implements tracing as per https://docs.livekit.io/agents/build/metrics/#enabling-telemetry using a STT->LLM->TTS pipeline) 2. a client connects to the same room 3. client starts a session 4. client asks a question 5. observer described behaviour in langfuse UI Expected behavior In langfuse UI the trace and span
    job_entrypoint
    will have the correct
    env
    value while all other automatically generated fields won't. Screenshots Incorrect
    Env
    value [Image](https://private-user-images.githubusercontent.com/215648622/513401863-64e64212-771d-4a9a-a84e-cf47a4163b7d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjI5NjI3NzAsIm5iZiI6MTc2Mjk2MjQ3MCwicGF0aCI6Ii8yMTU2NDg2MjIvNTEzNDAxODYzLTY0ZTY0MjEyLTc3MWQtNGE5YS1hODRlLWNmNDdhNDE2M2I3ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTExMlQxNTQ3NTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lODI2MTBiMzJlMGQ4MWM1NmIwMjczMTY5M2JjZDgwNzYwYWZiYjA1NWFkNjM1ODA5MTViYTE3ZjgxMzJmNjVkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.JJ5JnjTXOSRvNw4XvFoYVc_ijWMQ41LFuX0r8aa_ZcI) Correct
    Env
    value [Image](https://private-user-images.githubusercontent.com/215648622/513402325-2baa7f90-f32b-4ffc-9cd6-b14a1e87a9d9.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjI5NjI3NzAsIm5iZiI6MTc2Mjk2MjQ3MCwicGF0aCI6Ii8yMTU2NDg2MjIvNTEzNDAyMzI1LTJiYWE3ZjkwLWYzMmItNGZmYy05Y2Q2LWIxNGExZTg3YTlkOS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTExMlQxNTQ3NTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZGQwMzc3ZjgzMTA2MjZiYzlkYTkzMWU5ODA3MjI4MjczYTQ3MTFkMWVhZjlhNmUxYmRkMjg0MzUxNzYyZmI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.9dbN7pUdgPm8YovBvRQEFv0mKeDHAFvucAImi-N8xFk) livekit/livekit
  • b

    brave-belgium-55743

    11/12/2025, 4:22 PM
    #4078 Scribe v2 Realtime not supported on LiveKit Issue created by amanbmujawar it seems this model is not supported by livekit it only supports scribe_v1 livekit/livekit
    • 1
    • 1
  • b

    brave-belgium-55743

    11/13/2025, 2:42 AM
    #3857 Agent Job Failures: "no servers available (received 1 responses)" Issue created by artibadiani on <!date^1755264872^{date_short}|2025-08-15T13:34:32Z> Hi, We are experiencing intermittent agent job failures with LiveKit server where agent jobs fail with the error
    **"no servers available (received 1 responses)".**
    The issue appears to be related to agents connecting but immediately disconnecting from rooms, causing jobs to fail with status
    JS_FAILED and error "agent worker left the room".
    Environment LiveKit Server Version: 1.8.4 Deployment: AWS EC2 instance Agent Deployment: External (Render.com with AutoScaling enabled and max instances of 4) Architecture: SIP service + Redis on same server as LiveKit Worker, agents running externally Agent SDK version and language: Node.js Server Logs
    Copy code
    2025-08-14T10:00:32.023Z INFO livekit agent/client.go:173 failed to send job request 
    {"error": "no servers available (received 1 responses)", "namespace": "", "jobType": "JT_ROOM", "agentName": ""}
    
    2025-08-14T10:00:42.955Z INFO livekit.agents agent/worker.go:511 job ended 
    {"workerID": "AW_HAJ3HSLFbRxN", "agentName": "", "jobType": "JT_ROOM", "jobID": "AJ_tEMChvVZNtgW", "status": "JS_FAILED", "error": "agent worker left the room"}
    Render Logs ``{"level":30,"time":1755263692472,"pid":1,"hostname":"srv-d1cjcuadbo4c73ctune0-6cbb947bd6-lc5fp","version":"0.1.0","job":{"id":"AJ_FGBaCy2TD825","type":"JT_ROOM","room":{"sid":"RMzDYo4gaFMjfh","name":"call-+447949410617_hAYHJCfG7JrA","emptyTimeout":300,"maxParticipants":0,"creationTime":"1755263692","turnPassword":"REDACTED","enabledCodecs":[{"mime":"audio/opus","fmtpLine":""},{"mime":"audio/red","fmtpLine":""},{"mime":"video/VP8","fmtpLine":""},{"mime":"video/H264","fmtpLine":""},{"mime":"video/VP9","fmtpLine":""},{"mime":"video/AV1","fmtpLine":""},{"mime":"video/rtx","fmtpLine":""}],"metadata":"","numParticipants":0,"activeRecording":false,"numPublishers":0,"departureTimeout":20,"creationTimeMs":"1755263692260"},"namespace":"","metadata":"","agentName":"","state":{"status":"JS_RUNNING","error":"","startedAt":"1755263692465106425","endedAt":"0","updatedAt":"1755263692465106425","participantIdentity":"","workerId":""},"dispatchId":"AD_j83ZvxcXw3j7"},"resuming":false,"agentName":"","msg":"received job request"}`` Any assistance would be appreciated Thanks, livekit/livekit
    • 1
    • 1
  • b

    brave-belgium-55743

    11/13/2025, 4:58 AM
    #4079 Can't not livestream Issue created by dev1-dylan Hello team. Could you please help me run the LiveKit server and LiveKit Ingress using Docker Compose? My config :
    Copy code
    compose:
    services:
      redis:
        image: redis:7-alpine
        container_name: redis
        restart: always
        ports:
          - "6379:6379"
        networks: [livekit-net]
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
          interval: 5s
          timeout: 3s
          retries: 5
    
      livekit-server:
        image: livekit/livekit-server:latest
        container_name: livekit-server
        restart: always
        volumes:
          - ./livekit/livekit.yaml:/config/livekit.yaml
        command: ["--config", "/config/livekit.yaml"]
        environment:
          LIVEKIT_KEYS: "key1: supersecretkeythatlongenough1234567890"
        ports:
          - "7880:7880/tcp"
          - "7881:7881/tcp"
          - "7882:7882/udp"
          - "1935:1935/tcp"
          - "50000-50100:50000-50100/udp"
        networks: [livekit-net]
        depends_on:
          redis:
            condition: service_healthy
        healthcheck:
          test: ["CMD", "wget", "--spider", "-q", "<http://localhost:7880/>"]
          interval: 10s
          timeout: 5s
          retries: 3
    
      livekit-ingress:
        image: livekit/ingress:latest
        container_name: livekit-ingress
        restart: always
        volumes:
          - ./ingress/ingress.yaml:/config/ingress.yaml
        environment:
          INGRESS_CONFIG_FILE: "/config/ingress.yaml"
        ports:
          - "8080:8080"
          - "7885:7885/udp"
        networks: [livekit-net]
        depends_on:
          redis:
            condition: service_healthy
          livekit-server:
            condition: service_healthy
    
      backend:
        build: ./backend
        container_name: backend-server
        restart: always
        env_file: .env
        ports:
          - "3000:3000"
        networks: [livekit-net]
        depends_on:
          livekit-server:
            condition: service_healthy
          livekit-ingress:
            condition: service_started
    
    networks:
      livekit-net:
        driver: bridge
    port: 7880 redis: address: redis:6379 rtc: port_range_start: 50000 port_range_end: 50100 tcp_port: 7881 use_external_ip: false enable_loopback_candidate: false logging: level: info turn: enabled: false ingress: rtmp_base_url: rtmp://livekit-server:1935/live whip_base_url: http://localhost:8080/w
    Copy code
    api_key: key1
    api_secret: supersecretkeythatlongenough1234567890
    
    ws_url: "<ws://livekit-server:7880/>"
    
    redis:
      address: redis:6379
    
    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: false
      enable_loopback_candidate: false
    But: When i stream WHIP by OBS. I can't live stream [Image](https://private-user-images.githubusercontent.com/181685274/513679745-135ac552-b1b3-454a-bf10-1ed03c6fc9f5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMwMTcyNDEsIm5iZiI6MTc2MzAxNjk0MSwicGF0aCI6Ii8xODE2ODUyNzQvNTEzNjc5NzQ1LTEzNWFjNTUyLWIxYjMtNDU0YS1iZjEwLTFlZDAzYzZmYzlmNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTExM1QwNjU1NDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mOTFlMGZkNTVkODdiMjM3ZGQ3NDlkODQ1YmZjNDk2YjllZjEzM2IwMTFmMjUxMDc2NzQ0ODdlMTk1NDM3YWJkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.TNU-MlJmptfgxQySOibzuTLeXcIPJzwbPpki61lMN6E) livekit/livekit
  • b

    brave-belgium-55743

    11/13/2025, 8:24 AM
    1 new commit pushed to
    <https://github.com/livekit/client-sdk-swift/tree/main|main>
    by pblazej
    <https://github.com/livekit/client-sdk-swift/commit/4aa74ada9d1e810a5c302eb0bfdeb60bc4c45402|4aa74ada>
    - Agent derived states (#840) livekit/client-sdk-swift
  • b

    brave-belgium-55743

    11/13/2025, 8:49 AM
    #841 2.10.0 Pull request opened by pblazej livekit/client-sdk-swift
    • 1
    • 1
  • b

    brave-belgium-55743

    11/13/2025, 11:22 AM
    1 new commit pushed to
    <https://github.com/livekit/client-sdk-swift/tree/main|main>
    by pblazej
    <https://github.com/livekit/client-sdk-swift/commit/dbe9ba67ae033d2961a7aa675afbee121c313fe8|dbe9ba67>
    - 2.10.0 (#841) livekit/client-sdk-swift
  • b

    brave-belgium-55743

    11/13/2025, 11:24 AM
    Release - 2.10.0 New release published by pblazej ## What's Changed • Flaky tests by @pblazej in #826 • Add complete reconnect delegate methods by @pblazej in #825 • Session API by @pblazej in #789 • Add print logger by @pblazej in #829 • Camera format selection logic by @pblazej in #833 • Agent derived states by @pblazej in #840 Full Changelog: 2.9.0...2.10.0 livekit/client-sdk-swift
  • b

    brave-belgium-55743

    11/13/2025, 1:05 PM
    #4080 Forwarding latency measurement tweaks. Pull request opened by boks1971 • prom transmission type public • do not measure short term values as it is not used and saves some lock contention time in packet path potentially. Adding a separate method for that. • Change latency/jitter summary reporting to
    ns
    also to match the histogram. livekit/livekit
    • 1
    • 3
  • b

    brave-belgium-55743

    11/13/2025, 1:09 PM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/f8b994d4910ea59bd14fd863408b6da6311a4557|f8b994d4>
    - Forwarding latency measurement tweaks. (#4080) livekit/livekit
  • b

    brave-belgium-55743

    11/14/2025, 8:15 AM
    #842 Agent recovery Pull request opened by pblazej Removes the guards as they don't make much sense anymore (only covering
    connecting<->connected
    transition, which does not have any practical implications) livekit/client-sdk-swift
    • 1
    • 1
  • b

    brave-belgium-55743

    11/14/2025, 9:05 AM
    1 new commit pushed to
    <https://github.com/livekit/client-sdk-swift/tree/main|main>
    by pblazej
    <https://github.com/livekit/client-sdk-swift/commit/134ad59b9a1321976cab3526f009ac324b64011a|134ad59b>
    - Agent recovery (#842) livekit/client-sdk-swift
  • b

    brave-belgium-55743

    11/14/2025, 10:43 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/c3964ba2ebfd93972be72c43a45f6337969d7155|c3964ba2>
    - Use sync.Pool for objects in packet path. (#4066) livekit/livekit
  • b

    brave-belgium-55743

    11/14/2025, 6:45 PM
    #4081 Bump protocol to pull sip validation changes and error mapping Pull request opened by alexlivekit livekit/livekit
    • 1
    • 2
  • b

    brave-belgium-55743

    11/14/2025, 6:54 PM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by alexlivekit
    <https://github.com/livekit/livekit/commit/3a128e61c1481ed78dee371a456986d091568da2|3a128e61>
    - protocol bump for SIP error mapping and validation (#4081) livekit/livekit
  • b

    brave-belgium-55743

    11/14/2025, 9:00 PM
    #4082 Secrets being updated on deploy Issue created by ibiscp When I create an agent, it uses my
    .env
    file to generate the secrets correctly. However, whenever I perform a new deploy and then check the secrets list, I notice that all of them show an “Updated At” timestamp matching the time of the new deploy. Is this expected behavior? livekit/livekit
  • b

    brave-belgium-55743

    11/15/2025, 10:25 AM
    #4083 Prepare release v1.9.4. Pull request opened by boks1971 • Removing x/tools replace for release script to work. Will add it after the release. livekit/livekit
    • 1
    • 3
  • b

    brave-belgium-55743

    11/15/2025, 11:38 AM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/c3ea5890d5d7e268878b65699284000bfc463b8b|c3ea5890>
    - Prepare release v1.9.4. (#4083) livekit/livekit
  • b

    brave-belgium-55743

    11/15/2025, 11:41 AM
    Release - New release published by boks1971 ### Added • Log reason for subscriber not being able to determine codec. (#4071) • Kind details for connector (#4072) ### Fixed • Prevent invalid track access while peer connection is shutting down. (#4054) ### Changed • Update PsRPC to get redis pipeliner implementation (#4055) • Forwarding latency measurement. (#4056. #4057, #4059, #4061, #4062, #4067, #4080) • Update pion/transport to v3.1.1 (to get batch I/O ping-pong buffer) (#4070) • Use sync.Pool for objects in packet path. (#4066) • Bump protocol to pull sip validation changes and error mapping (#4081) livekit/livekit
  • b

    brave-belgium-55743

    11/15/2025, 11:54 AM
    #4084 Downgrade x/tools to be able to make a release Pull request opened by boks1971 livekit/livekit
    • 1
    • 2
  • b

    brave-belgium-55743

    11/15/2025, 1:26 PM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/d510fff1e744e92011c1b1ca546e87b2c1816811|d510fff1>
    - Downgrade x/tools to be able to make a release (#4084) livekit/livekit
  • b

    brave-belgium-55743

    11/15/2025, 1:28 PM
    Release - New release published by boks1971 ### Added • Log reason for subscriber not being able to determine codec. (#4071) • Kind details for connector (#4072) ### Fixed • Prevent invalid track access while peer connection is shutting down. (#4054) ### Changed • Update PsRPC to get redis pipeliner implementation (#4055) • Forwarding latency measurement. (#4056. #4057, #4059, #4061, #4062, #4067, #4080) • Update pion/transport to v3.1.1 (to get batch I/O ping-pong buffer) (#4070) • Use sync.Pool for objects in packet path. (#4066) • Bump protocol to pull sip validation changes and error mapping (#4081) livekit/livekit
  • b

    brave-belgium-55743

    11/15/2025, 1:38 PM
    #4085 Lock x/tools at 0.37.0 Pull request opened by boks1971 livekit/livekit
    • 1
    • 2
  • b

    brave-belgium-55743

    11/15/2025, 1:44 PM
    1 new commit pushed to
    <https://github.com/livekit/livekit/tree/master|master>
    by boks1971
    <https://github.com/livekit/livekit/commit/5175c1afa1417af6a258678143564292d38aebc2|5175c1af>
    - Lock x/tools at 0.37.0 (#4085) livekit/livekit
  • b

    brave-belgium-55743

    11/16/2025, 1:41 AM
    #843 iOS: Video publish times out waiting for dimensions (Code 101) on iPhone 13 Pro Max (audio ok, AVFoundation works) Issue created by ivopacak Describe the bug On iOS, publishing a camera video track with the LiveKit Swift SDK fails with a timeout (Code=101 "Timed out") on an iPhone 13 Pro Max, while: Room connection succeeds Audio publish works perfectly A standalone AVFoundation camera preview in the same app works correctly (green camera indicator appears, frames are delivered) With LiveKit, when calling setCamera(enabled: true): CameraCapturer.startCapture() is called A valid front camera device and format (e.g. 1280x720 or 640x480) are selected But no frames are ever received, so LiveKit waits for “dimensions to resolve” and then times out after ~10 seconds There is no green camera indicator in the iOS status bar while LiveKit is running The server sees no AddTrack for video at all (only audio), confirming the failure is entirely on the client side before any track is signaled The same physical device & app can successfully show camera video using a plain AVFoundation AVCaptureSession + AVCaptureVideoPreviewLayer. SDK Version LiveKit Swift SDK: 2.10.0 iOS/macOS Version iOS: 18.6.2 Device: iPhone 13 Pro Max (modelId: iPhone14,3) Xcode Version The Xcode version which the issue occurs. (Please provide the Swift version if you know it) Steps to Reproduce This is reproducible with a minimal setup: Start a LiveKit server (in my case: self-hosted LiveKit Server 1.9.4 in Docker). On iOS, create a simple app that: Fetches a valid token from a backend (/livekit/token) Creates a Room and connects to LiveKit: let room = Room() try await room.connect( url: "ws//7880", token: "" ) After connect resolves and connectionState == .connected, call: try await room.localParticipant.setCamera(enabled: true) Observe that: The room connects successfully. When setCamera(enabled: true) is called, logs show CameraCapturer.startCapture() selecting a valid front camera format (e.g. 1280x720). After ~10 seconds, publish fails with Code=101 "Timed out" and “Waiting for dimensions to resolve… timed out”. Additional notes: Microphone works fine: try await room.localParticipant.setMicrophone(enabled: true) → Audio track is published, AddTrack is visible on server logs, and audio is transmitted. A separate AVFoundation-only test view in the same app successfully displays a live camera preview and triggers the green status bar indicator. The issue reproduces even when: Not passing explicit CameraCaptureOptions (letting LiveKit choose defaults) Using explicit options like .h360_169 or .h720_169 with fps: 15 Expected behavior When calling: try await room.localParticipant.setCamera(enabled: true) I expect: The camera capture session to start Frames to be delivered so dimensions can be resolved The local camera track to be published AddTrack and SDP updates to appear on the server The iOS green camera indicator to be visible while capturing Instead, no frames are produced and the SDK times out waiting for dimensions. Screenshots No UI screenshots, but behavior is: Plain AVFoundation preview → live video + green indicator. LiveKit call to setCamera(enabled: true) → no green indicator, no local preview, timeout. (If helpful, I can provide a short screen recording.) Logs [MinimalLiveKitTest] 🔌 Connecting to room: 691929e11efbfcff7a0e2d5e (userId: 6918bd1b067f3d22233f1244) [LiveKitManager] 🚀 connect: roomId=691929e11efbfcff7a0e2d5e, userId=6918bd1b067f3d22233f1244 [LiveKitManager] ✅ Token fetched: url=ws://192.168.2.192:7880 Room.init(delegateconnectOptionsroomOptions:) sdk: 2.10.0, os: iOS(18.6.2), modelId: iPhone14,3 Room.connect(urltokenconnectOptionsroomOptions) Connecting to room... SignalClient.connect(...): Connecting with url: ws://192.168.2.192:7880/rtc?protocol=12&amp;sdk=swift&amp;version=2.10.0&amp;os=iOS&amp;os_version=18.6.2&amp;device_model=iPhone14,3&amp;auto_subscribe=1&amp;adaptive_stream=0 ... Room.connect(...): Connect sequence completed Room.init(...): connectionState: .connecting -> .connected, reconnectMode: nil [LiveKitManager] ✅ Connected to room: 691929e11efbfcff7a0e2d5e [MinimalLiveKitTest] ✅ Connected successfully When enabling camera (without explicit dimensions): [MinimalLiveKitTest] 🎥 Starting video... [MinimalLiveKitTest] ⚠️ Testing WITHOUT explicit dimensions [LiveKitManager] 🎥 Enabling camera... [LiveKitManager] ⚠️ Testing WITHOUT explicit dimensions to see if this fixes the timeout [LiveKitManager] ⚠️ Camera permissions: 3 CameraCapturer.init(delegateoptionsprocessor:) isMultitaskingAccessSupported: false LocalParticipant._publish(trackoptions) [publish] LocalVideoTrack(sid: nil, name: camera, source: camera) options: nil... VideoCapturer.init(delegateprocessor) startStopCounter 0 -> 1 CameraCapturer.startCapture() CameraCapturer.preferredPixelFormat: kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange CameraCapturer.startCapture() Existing multicam devices: [] CameraCapturer.startCapture() Compabible multicam devices: [[Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1], ...] CameraCapturer.startCapture() sortedFormats: ["(dimensions: Dimensions(192x144), ...)", "(dimensions: Dimensions(640x480), ...)", "(dimensions: Dimensions(1280x720), ...)", "(dimensions: Dimensions(1920x1080), ...)", ...], target dimensions: Dimensions(1280x720) CameraCapturer.startCapture() Format selected using predicate: fps CameraCapturer.startCapture() starting camera capturer device: <AVCaptureFigVideoDevice: 0x106f2aa00 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>, format: (format: 'vide'/'420v' 1280x 720, { 1- 30 fps}, ...) LocalParticipant._publish(trackoptions) [Publish] Waiting for dimensions to resolve... AsyncCompleter.wait(timeout:) Dimensions id: 82749461-D9A1-4003-B929-73C927EAAAC5 waiting for milliseconds(10000) AsyncCompleter.wait(timeout:) Dimensions id: 82749461-D9A1-4003-B929-73C927EAAAC5 timed out LocalParticipant._publish(trackoptions) [publish] failed LocalVideoTrack(sid: nil, name: camera, source: camera), error: Error Domain=io.livekit.swift-sdk Code=101 "Timed out" UserInfo={NSLocalizedDescription=Timed out} VideoCapturer.init(delegateprocessor) startStopCounter 1 -> 0 [MinimalLiveKitTest] ❌ Video publish error: Error Domain=io.livekit.swift-sdk Code=101 "Timed out" UserInfo={NSLocalizedDescription=Timed out} Server-side, there is no AddTrack for video during this sequence, only for audio when setMicrophone(enabled: true) is called. If you’d like, I can also provide: A stripped-down Xcode project with the minimal reproduction (token fetch + connect + setCamera(enabled: true)) Additional device diagnostics or sysdiagnose logs. livekit/client-sdk-swift