Hey team,
Currently LiveKit supports empty_timeout, departure_timeout, and max_duration for room lifecycle management, but there’s no built-in way to handle the case where a room is left with exactly one remaining participant for an extended period — e.g. the other side never joined, or someone left and forgot to hang up, leaving the call running (and billing/streaming) indefinitely.
What I’d like: a solo_timeout (or similar) option on CreateRoomRequest — starts a timer when participant count drops to exactly 1, cancels if someone rejoins, and closes the room (same mechanism as max_duration) if it’s still solo when the timer expires.
What I’m doing today as a workaround: a webhook service that tracks participant_joined/participant_left, keeps per-room counts, and runs a timer that calls DeleteRoom if the count is still 1 when it fires. Works, but it’s a decent chunk of extra infra (needs to survive restarts, work across multiple server instances, etc.) for what feels like a natural sibling to the existing timeout options.
Has this come up before / is there a simpler built-in way I’m missing? And if not, would this be a reasonable feature request to file on GitHub as well?
Thanks!