diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 61f296012..f00dd827f 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -788,6 +788,12 @@ try: except ValueError: WEBSOCKET_SERVER_PING_INTERVAL = 25 +WEBSOCKET_EVENT_CALLER_TIMEOUT = os.environ.get("WEBSOCKET_EVENT_CALLER_TIMEOUT", "300") +try: + WEBSOCKET_EVENT_CALLER_TIMEOUT = int(WEBSOCKET_EVENT_CALLER_TIMEOUT) +except ValueError: + WEBSOCKET_EVENT_CALLER_TIMEOUT = 300 + REQUESTS_VERIFY = os.environ.get("REQUESTS_VERIFY", "True").lower() == "true" diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 758b530c9..307095933 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -37,6 +37,7 @@ from open_webui.env import ( WEBSOCKET_SERVER_PING_INTERVAL, WEBSOCKET_SERVER_LOGGING, WEBSOCKET_SERVER_ENGINEIO_LOGGING, + WEBSOCKET_EVENT_CALLER_TIMEOUT, ) from open_webui.utils.auth import decode_token from open_webui.socket.utils import RedisDict, RedisLock, YdocManager @@ -918,6 +919,7 @@ def get_event_call(request_info): "data": event_data, }, to=request_info["session_id"], + timeout=WEBSOCKET_EVENT_CALLER_TIMEOUT, ) return response