From c9a9e05bb46e19be8df541084f2c3fb16f409cf6 Mon Sep 17 00:00:00 2001 From: tarmst Date: Mon, 28 Apr 2025 15:17:34 +0000 Subject: [PATCH] Fix websocket sequential awaits --- backend/open_webui/socket/main.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 282f4db95..a06e1e3e9 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -314,16 +314,18 @@ def get_event_emitter(request_info, update_db=True): ) ) - for session_id in session_ids: - await sio.emit( - "chat-events", - { - "chat_id": request_info.get("chat_id", None), - "message_id": request_info.get("message_id", None), - "data": event_data, - }, - to=session_id, - ) + emit_tasks = [sio.emit( + "chat-events", + { + "chat_id": request_info.get("chat_id", None), + "message_id": request_info.get("message_id", None), + "data": event_data, + }, + to=session_id, + ) + for session_id in session_ids] + + await asyncio.gather(*emit_tasks) if update_db: if "type" in event_data and event_data["type"] == "status":