I’m seeing a reproducible issue where a LiveKit Cloud room reports maxParticipants: 2 but admits 3 simultaneous STANDARD participants.
Environment:
-
LiveKit Cloud
-
livekit-server-sdk@2.15.2 -
Node/TypeScript
-
Room created server-side with
RoomServiceClient.createRoom() -
All participants are normal
STANDARDparticipants, not agents, ingress, egress, or recorders
Reproduction
- Create a room server-side:
const room = await roomService.createRoom({
name: authoritativeRoomName,
maxParticipants: 2,
});
- Verify the returned Room before issuing any participant credentials:
room.name === authoritativeRoomName
room.maxParticipants === 2
-
Connect two standard participants.
-
Connect a third distinct standard participant.
Expected
The third participant should be rejected because the room limit is 2.
Actual
All three participants connect successfully.
I also queried the active room directly through RoomServiceClient.listRooms() after all three had connected.
LiveKit returned:
room SID: RM_vy5wh3JsqPbV
maxParticipants: 2
numParticipants: 3
I then queried listParticipants() and confirmed there were three distinct connected participants. All three appear as STANDARD in the LiveKit Cloud dashboard.
The application also validates the Room returned by createRoom() and refuses to issue invite credentials unless the returned room has the expected name and maxParticipants === 2, so this is not just the original CreateRoom request containing the wrong value.
The Room Service API therefore appears to simultaneously report:
maxParticipants = 2
numParticipants = 3
with three distinct STANDARD participants connected.
Is there any circumstance in LiveKit Cloud where STANDARD participants are excluded from maxParticipants enforcement, or could this indicate an admission-enforcement issue?
I can provide additional timestamps, participant identities, screenshots, or reproduction details if useful.
