From ed188b9baf778094599a8865db4c8c8702adc206 Mon Sep 17 00:00:00 2001 From: Long Chen Date: Wed, 3 Jun 2026 21:34:56 +0800 Subject: [PATCH 1/2] fix: unsubscribe FFI queue when the room listen task ends --- livekit-rtc/livekit/rtc/room.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index e3619d9c..692d4e1c 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -557,6 +557,14 @@ def on_participant_connected(participant): # start listening to room events self._task = self._loop.create_task(self._listen_task()) + # unsubscribe from the FFI queue once the listen task ends. + # disconnect() unsubscribes too, but it early-returns when the + # room is already disconnected (e.g. removed remotely). + ffi_queue = self._ffi_queue + self._task.add_done_callback( + lambda _: FfiClient.instance.queue.unsubscribe(ffi_queue) + ) + # Unblock the FFI server once this SDK is ready to receive room events. ready_req = proto_ffi.FfiRequest() ready_req.ready_for_room_event.room_handle = self._ffi_handle.handle From 8a48dab90edd486da3336cafa88d0e99799b1af7 Mon Sep 17 00:00:00 2001 From: Long Chen Date: Wed, 3 Jun 2026 21:37:33 +0800 Subject: [PATCH 2/2] fix ruff --- livekit-rtc/livekit/rtc/room.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 692d4e1c..044034f9 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -561,9 +561,7 @@ def on_participant_connected(participant): # disconnect() unsubscribes too, but it early-returns when the # room is already disconnected (e.g. removed remotely). ffi_queue = self._ffi_queue - self._task.add_done_callback( - lambda _: FfiClient.instance.queue.unsubscribe(ffi_queue) - ) + self._task.add_done_callback(lambda _: FfiClient.instance.queue.unsubscribe(ffi_queue)) # Unblock the FFI server once this SDK is ready to receive room events. ready_req = proto_ffi.FfiRequest()