Voice-channel "Channel Full" limit is bypassed by joining from the sidebar #30

Closed
opened 2026-09-12 01:51:02 -04:00 by jared · 0 comments
Owner

Severity: medium · Type: bug · Confidence: high

Location: src/app/features/room-nav/RoomNavItem.tsx:742-767, src/app/features/call/CallView.tsx:117-124,143

Problem

the io.lotus.voice_limit check (channelFull) is computed in CallPrescreen and only used to disable the prescreen Join button. RoomNavItem.handleStartCall — the second-click-on-a-voice-channel join path — checks power levels, LiveKit support, WebRTC support and "already in a call", but not the voice limit, so clicking the channel again in the sidebar joins a full channel. (The RoomQuality and RoomVoiceLimit settings both advertise "Enforced on the server", so the media layer may still refuse — but the client presents two contradictory answers for the same room.)

How to trigger

set a voice limit of 1 on a call room, have someone else join, then click that room twice in the room nav.

Suggested fix

extract the channelFull computation into a hook and apply it in RoomNavItem.handleStartCall (and anywhere else useCallStart is invoked for a call room).


Filed from the September 2026 client audit (branch lotus @ 4bea4895).

**Severity:** medium · **Type:** bug · **Confidence:** high **Location:** `src/app/features/room-nav/RoomNavItem.tsx:742-767`, `src/app/features/call/CallView.tsx:117-124,143` ### Problem the `io.lotus.voice_limit` check (`channelFull`) is computed in `CallPrescreen` and only used to disable the prescreen Join button. `RoomNavItem.handleStartCall` — the second-click-on-a-voice-channel join path — checks power levels, LiveKit support, WebRTC support and "already in a call", but not the voice limit, so clicking the channel again in the sidebar joins a full channel. (The `RoomQuality` and `RoomVoiceLimit` settings both advertise "Enforced on the server", so the media layer may still refuse — but the client presents two contradictory answers for the same room.) ### How to trigger set a voice limit of 1 on a call room, have someone else join, then click that room twice in the room nav. ### Suggested fix extract the `channelFull` computation into a hook and apply it in `RoomNavItem.handleStartCall` (and anywhere else `useCallStart` is invoked for a call room). --- _Filed from the September 2026 client audit (branch `lotus` @ 4bea4895)._
jared added this to the Audit 2026-09 · Medium & Low milestone 2026-09-12 01:51:02 -04:00
jared added the bugpriority: mediumarea: calls labels 2026-09-12 01:51:02 -04:00
jared self-assigned this 2026-09-12 01:51:02 -04:00
jared closed this issue 2026-09-12 19:46:18 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
2026-11-14
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#30