#4558·livekit

[BUG] DeleteRoom does not delete the room

Author: burstingwithflavorCreated Jun 3, 2026Updated Aug 5, 2026

Describe the bug After DeleteRoom, a room's SID stays reserved for ~28s. Re-creating a room with the same name within that window returns not just the same SID but the same room object (identical sid and creation_time, and the same empty_timeout/departure_timeout). Critically, the re-created room inherits the previous room's pending auto-close: the prior room's departure/empty-timeout countdown resumes on the new room and fires Disconnected(ROOM_CLOSED=10) ~12–16s into the new session while Standard participants are present and publishing media. The result is that a freshly created-and-joined room is torn down with no client-side cause.

Note: There is no way to see that the room is still there via the sdks. Room listings do not show the room after it got deleted

Server

  • Livekit Cloud

Client js

  • livekit-server-sdk - 2.15.0
  • livekit-client - 2.19.1

python

  • livekit-agents - 1.5.14

To Reproduce Steps to reproduce the behavior:

  1. Create room R; a client joins and publishes.
  2. Call DeleteRoom(R) to end the session. Connected clients disconnect with Disconnected(ROOM_DELETED=5).
  3. Within ~28s, create/join room R again (same name). The new connection lands on the same SID. Inspect the server-side Room (via RoomService.ListRooms, or for agents JobContext.job.room): sid, creation_time, empty_timeout, departure_timeout are identical to the deleted room.
  4. One or more clients join R and publish; the room is healthy (active publisher + subscribers).
  5. ~12–16s into this new session, all participants receive Disconnected(ROOM_CLOSED=10) and the room is torn down despite Standard participants being present and publishing.

Expected behavior Manually closing the room should clear up all relevant resources so one can receive a new room instance while keeping the same name of the room

Screenshots n/a

Additional context We have pretty much the default config but with auto-create-on-join off