Skip to content

When the camera permission is not authorized, an error is reported and the connection cannot be established #1749

@PineSongCN

Description

@PineSongCN

Describe the bug

If the error message could be made more specific regarding the issue where the client is unable to establish a connection due to not having authorized camera permissions.

If it is a windows system, even if the browser allows camera permission, if a connection still cannot be established and an error is reported, it is the same as an error reported without authorization.

if there are any plans to deal with this issue that has been blocked by the Windows firewall?

Reproduction

import { Room, ScreenSharePresets, VideoPresets } from 'livekit-client';

const linkUpParams = {
  token: 'xxx',
  wsUrl: 'xxx',
};
const room = new Room({
  adaptiveStream: false,
  dynacast: true, 
  videoCaptureDefaults: {
    resolution: VideoPresets.h720.resolution,
  },

  disconnectOnPageLeave: true,
  audioOutput: {},
  publishDefaults: {
    videoSimulcastLayers: [VideoPresets.h720],
    videoCodec: 'h264',
    dtx: true,
    red: true,
    forceStereo: false,
    screenShareEncoding: ScreenSharePresets.h1080fps30.encoding,
    scalabilityMode: 'L3T3_KEY',
  },
});
console.log('livekit init success', room);

await room.prepareConnection(linkUpParams.wsUrl, linkUpParams.token);
console.log('livekit prepareConnection success', room);

await room.connect(linkUpParams.wsUrl, linkUpParams.token, {
  autoSubscribe: true,
  peerConnectionTimeout: 600_000,
  websocketTimeout: 600_000,
});
console.log('livekit connect success', room);

await room.localParticipant.setCameraEnabled(true);

Logs

> web
<img width="755" height="1155" alt="Image" src="https://github.com/user-attachments/assets/71ee6c2c-5744-4109-aad3-b5b631a291a3" />

>server

2025-11-14T06:54:00.790Z        INFO    livekit service/roommanager.go:405      starting RTC session    {"room": "C20251114Y7861L", "roomID": "RM_Q5jzdCcTuppX", "participant": "51483", "pID": "PA_LiXLA7jpX8vH", "remote": false, "room": "C20251114Y7861L", "nodeID": "ND_mBPN49vMGRvM", "numParticipants": 1, "participantInit": {"Identity": "51483", "Reconnect": false, "ReconnectReason": "RR_UNKNOWN", "AutoSubscribe": true, "Client": {"sdk": "JS", "version": "2.11.0", "protocol": 15, "os": "Windows", "osVersion": "10", "deviceModel": "Other", "browser": "Chrome", "browserVersion": "142.0.0"}, "Grants": {"Identity": "", "Kind": "", "Video": {"RoomCreate": false, "RoomList": false, "RoomRecord": false, "RoomAdmin": false, "RoomJoin": true, "Room": "C20251114Y7861L", "CanPublish": "not-set", "CanSubscribe": "not-set", "CanPublishData": "not-set", "CanPublishSources": ["camera", "microphone", "screen_share", "screen_share_audio", "unknown"], "CanUpdateOwnMetadata": "not-set", "IngressAdmin": false, "Hidden": false, "Recorder": false, "Agent": false, "CanSubscribeMetrics": "not-set"}, "SIP": {"Admin": false, "Call": false}, "RoomConfig": {}, "RoomPreset": ""}, "Region": "", "AdaptiveStream": false, "ID": "", "SubscriberAllowPause": "not-set", "DisableICELite": false, "CreateRoom": {"name": "C20251114Y7861L"}}}
2025-11-14T06:54:15.936Z        INFO    livekit rtc/participant.go:1033 participant closing     {"room": "C20251114Y7861L", "roomID": "RM_Q5jzdCcTuppX", "participant": "51483", "pID": "PA_LiXLA7jpX8vH", "remote": false, "sendLeave": false, "reason": "SIGNAL_SOURCE_CLOSE", "isExpectedToResume": false}
2025-11-14T06:54:15.936Z        INFO    livekit rtc/room.go:698 removing participant without connection {"room": "C20251114Y7861L", "roomID": "RM_Q5jzdCcTuppX", "participant": "51483", "pID": "PA_LiXLA7jpX8vH", "remote": false, "publisherCandidates": ["[local][trickle] udp4 host [192.168.128.2:7882](http://192.168.128.2:7882/) (resolved: [192.168.128.2:7882](http://192.168.128.2:7882/))", "[local][trickle] tcp4 host [192.168.128.2:7881](http://192.168.128.2:7881/) (resolved: [192.168.128.2:7881](http://192.168.128.2:7881/))", "[local][trickle] udp4 srflx [223.166.22.191:8419](http://223.166.22.191:8419/) related [0.0.0.0:60068](http://0.0.0.0:60068/) (resolved: [223.166.22.191:8419](http://223.166.22.191:8419/))", "[local][trickle] udp4 srflx [223.166.22.191:8441](http://223.166.22.191:8441/) related [0.0.0.0:54559](http://0.0.0.0:54559/) (resolved: [223.166.22.191:8441](http://223.166.22.191:8441/))", "[local][trickle] udp4 srflx [223.166.22.191:8746](http://223.166.22.191:8746/) related [0.0.0.0:49402](http://0.0.0.0:49402/) (resolved: [223.166.22.191:8746](http://223.166.22.191:8746/))", "[remote][trickle] udp4 host [192.168.161.71:53830](http://192.168.161.71:53830/)", "[remote][trickle] tcp4 host [192.168.161.71:9](http://192.168.161.71:9/)", "[remote][trickle] udp4 srflx 223.166.22....:8393  related [192.168.161.71:53830](http://192.168.161.71:53830/)", "[remote][trickle] udp4 srflx 223.166.22....:8478  related [192.168.161.71:53830](http://192.168.161.71:53830/)"], "subscriberCandidates": ["[local][trickle] udp4 host [192.168.128.2:7882](http://192.168.128.2:7882/) (resolved: [192.168.128.2:7882](http://192.168.128.2:7882/))", "[local][trickle] tcp4 host [192.168.128.2:7881](http://192.168.128.2:7881/) (resolved: [192.168.128.2:7881](http://192.168.128.2:7881/))", "[local][trickle] udp4 srflx [223.166.22.191:8314](http://223.166.22.191:8314/) related [0.0.0.0:45260](http://0.0.0.0:45260/) (resolved: [223.166.22.191:8314](http://223.166.22.191:8314/))", "[local][trickle] udp4 srflx [223.166.22.191:8312](http://223.166.22.191:8312/) related [0.0.0.0:59174](http://0.0.0.0:59174/) (resolved: [223.166.22.191:8312](http://223.166.22.191:8312/))", "[local][trickle] udp4 srflx [223.166.22.191:8742](http://223.166.22.191:8742/) related [0.0.0.0:37580](http://0.0.0.0:37580/) (resolved: [223.166.22.191:8742](http://223.166.22.191:8742/))", "[remote][trickle] udp4 host [192.168.161.71:53829](http://192.168.161.71:53829/)", "[remote][trickle] tcp4 host [192.168.161.71:9](http://192.168.161.71:9/)", "[remote][trickle] udp4 srflx 223.166.22....:8475  related [192.168.161.71:53829](http://192.168.161.71:53829/)", "[remote][trickle] udp4 srflx 223.166.22....:8389  related [192.168.161.71:53829](http://192.168.161.71:53829/)"], "connectionType": "unknown", "reason": "NONE"}
2025-11-14T06:54:15.986Z        ERROR   livekit service/signal.go:183   could not handle new participant        {"room": "C20251114Y7861L", "participant": "51483", "connID": "CO_vTbMeYiHWjWX", "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:395\ngithub.com/livekit/livekit-server/pkg/service.(*defaultSessionHandler).HandleSession\n\t/workspace/pkg/service/signal.go:114\ngithub.com/livekit/livekit-server/pkg/service.(*signalService).RelaySignal\n\t/workspace/pkg/service/signal.go:180\ngithub.com/livekit/psrpc/pkg/server](http://ngithub.com/livekit/livekit-server/pkg/service.(*RoomManager).StartSession/n/t/workspace/pkg/service/roommanager.go:395/ngithub.com/livekit/livekit-server/pkg/service.(*defaultSessionHandler).HandleSession/n/t/workspace/pkg/service/signal.go:114/ngithub.com/livekit/livekit-server/pkg/service.(*signalService).RelaySignal/n/t/workspace/pkg/service/signal.go:180/ngithub.com/livekit/psrpc/pkg/server).(*streamHandler[...]).handleOpenRequest\n\t/go/pkg/mod/[github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:202\ngithub.com/livekit/psrpc/pkg/server](http://github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:202/ngithub.com/livekit/psrpc/pkg/server).(*streamHandler[...]).handleRequest.func1\n\t/go/pkg/mod/[github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:141\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1700](http://github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:141/nruntime.goexit/n/t/usr/local/go/src/runtime/asm_amd64.s:1700)"}
[github.com/livekit/livekit-server/pkg/service.(*signalService).RelaySignal](http://github.com/livekit/livekit-server/pkg/service.(*signalService).RelaySignal)
        /workspace/pkg/service/signal.go:183
[github.com/livekit/psrpc/pkg/server](http://github.com/livekit/psrpc/pkg/server).(*streamHandler[...]).handleOpenRequest
        /go/pkg/mod/[github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:202](http://github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:202)
[github.com/livekit/psrpc/pkg/server](http://github.com/livekit/psrpc/pkg/server).(*streamHandler[...]).handleRequest.func1
        /go/pkg/mod/[github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:141](http://github.com/livekit/psrpc@v0.6.1-0.20241018124827-1efff3d113a8/pkg/server/stream.go:141)
2025-11-14T06:54:16.410Z        INFO    livekit service/roommanager.go:405      starting RTC session    {"room": "C20251114Y7861L", "roomID": "RM_Q5jzdCcTuppX", "participant": "51483", "pID": "PA_CrbFJPwuMkzC", "remote": false, "room": "C20251114Y7861L", "nodeID": "ND_mBPN49vMGRvM", "numParticipants": 1, "participantInit": {"Identity": "51483", "Reconnect": false, "ReconnectReason": "RR_UNKNOWN", "AutoSubscribe": true, "Client": {"sdk": "JS", "version": "2.11.0", "protocol": 15, "os": "Windows", "osVersion": "10", "deviceModel": "Other", "browser": "Chrome", "browserVersion": "142.0.0"}, "Grants": {"Identity": "", "Kind": "", "Video": {"RoomCreate": false, "RoomList": false, "RoomRecord": false, "RoomAdmin": false, "RoomJoin": true, "Room": "C20251114Y7861L", "CanPublish": "not-set", "CanSubscribe": "not-set", "CanPublishData": "not-set", "CanPublishSources": ["camera", "microphone", "screen_share", "screen_share_audio", "unknown"], "CanUpdateOwnMetadata": "not-set", "IngressAdmin": false, "Hidden": false, "Recorder": false, "Agent": false, "CanSubscribeMetrics": "not-set"}, "SIP": {}, "RoomConfig": {}, "RoomPreset": ""}, "Region": "", "AdaptiveStream": false, "ID": "", "SubscriberAllowPause": "not-set", "DisableICELite": false, "CreateRoom": {"name": "C20251114Y7861L"}}}
2025-11-14T06:54:31.591Z        INFO    livekit rtc/participant.go:1033 participant closing     {"room": "C20251114Y7861L", "roomID": "RM_Q5jzdCcTuppX", "participant": "51483", "pID": "PA_CrbFJPwuMkzC", "remote": false, "sendLeave": false, "reason": "SIGNAL_SOURCE_CLOSE", "isExpectedToResume": false}
2025-11-14T06:54:31.591Z        INFO    livekit rtc/room.go:698 removing participant without connection {"room": "C20251114Y7861L", "roomID": "RM_Q5jzdCcTuppX", "participant": "51483", "pID": "PA_CrbFJPwuMkzC", "remote": false, "publisherCandidates": ["[local][trickle] udp4 host [192.168.128.2:7882](http://192.168.128.2:7882/) (resolved: [192.168.128.2:7882](http://192.168.128.2:7882/))", "[local][trickle] tcp4 host [192.168.128.2:7881](http://192.168.128.2:7881/) (resolved: [192.168.128.2:7881](http://192.168.128.2:7881/))", "[local][trickle] udp4 srflx [223.166.22.191:8967](http://223.166.22.191:8967/) related [0.0.0.0:42146](http://0.0.0.0:42146/) (resolved: [223.166.22.191:8967](http://223.166.22.191:8967/))", "[local][trickle] udp4 srflx [223.166.22.191:8961](http://223.166.22.191:8961/) related [0.0.0.0:57239](http://0.0.0.0:57239/) (resolved: [223.166.22.191:8961](http://223.166.22.191:8961/))", "[local][trickle] udp4 srflx [223.166.22.191:8942](http://223.166.22.191:8942/) related [0.0.0.0:47513](http://0.0.0.0:47513/) (resolved: [223.166.22.191:8942](http://223.166.22.191:8942/))", "[remote][trickle] udp4 host [192.168.161.71:52101](http://192.168.161.71:52101/)", "[remote][trickle] tcp4 host [192.168.161.71:9](http://192.168.161.71:9/)", "[remote][trickle] udp4 srflx 223.166.22....:8878  related [192.168.161.71:52101](http://192.168.161.71:52101/)", "[remote][trickle] udp4 srflx 223.166.22....:8868  related [192.168.161.71:52101](http://192.168.161.71:52101/)"], "subscriberCandidates": ["[local][trickle] udp4 host [192.168.128.2:7882](http://192.168.128.2:7882/) (resolved: [192.168.128.2:7882](http://192.168.128.2:7882/))", "[local][trickle] tcp4 host [192.168.128.2:7881](http://192.168.128.2:7881/) (resolved: [192.168.128.2:7881](http://192.168.128.2:7881/))", "[local][trickle] udp4 srflx [223.166.22.191:8821](http://223.166.22.191:8821/) related [0.0.0.0:54240](http://0.0.0.0:54240/) (resolved: [223.166.22.191:8821](http://223.166.22.191:8821/))", "[local][trickle] udp4 srflx [223.166.22.191:8835](http://223.166.22.191:8835/) related [0.0.0.0:54212](http://0.0.0.0:54212/) (resolved: [223.166.22.191:8835](http://223.166.22.191:8835/))", "[local][trickle] udp4 srflx [223.166.22.191:8836](http://223.166.22.191:8836/) related [0.0.0.0:54007](http://0.0.0.0:54007/) (resolved: [223.166.22.191:8836](http://223.166.22.191:8836/))", "[remote][trickle] udp4 host [192.168.161.71:52100](http://192.168.161.71:52100/)", "[remote][trickle] tcp4 host [192.168.161.71:9](http://192.168.161.71:9/)", "[remote][trickle] udp4 srflx 223.166.22....:7714  related [192.168.161.71:52100](http://192.168.161.71:52100/)", "[remote][trickle] udp4 srflx 223.166.22....:8854  related [192.168.161.71:52100](http://192.168.161.71:52100/)"], "connectionType": "unknown", "reason": "NONE"}

System Info

**System**
- windows 11

**Browswer**
- Chrome/Edge

**Server**
- Version: 1.8.2
- Environment: dev
- any other information about your deployment setup

**Client**
- SDK: js
- Version: 2.9.2

Severity

blocking all usage of LiveKit

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions