From b99f8e00bd35bbea7b9759cc2b355ad7dc0e72be Mon Sep 17 00:00:00 2001 From: henryruhs Date: Wed, 23 Sep 2026 15:00:33 +0200 Subject: [PATCH] handle ClientDisconnect for http and websocket --- facefusion/apis/middlewares/exception.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/facefusion/apis/middlewares/exception.py b/facefusion/apis/middlewares/exception.py index ce5b38af..cd449f7c 100644 --- a/facefusion/apis/middlewares/exception.py +++ b/facefusion/apis/middlewares/exception.py @@ -4,6 +4,7 @@ from starlette.requests import ClientDisconnect from starlette.responses import JSONResponse from starlette.status import HTTP_400_BAD_REQUEST from starlette.types import ASGIApp, Receive, Scope, Send +from starlette.websockets import WebSocketDisconnect from facefusion import translator @@ -13,13 +14,21 @@ def create_exception_guard(app : ASGIApp) -> ASGIApp: if scope.get('type') == 'http': try: return await app(scope, receive, send) - except (ClientDisconnect, JSONDecodeError, UnicodeDecodeError): + except (JSONDecodeError, UnicodeDecodeError): response = JSONResponse( { 'message': translator.get('something_went_wrong', 'facefusion.apis') }, status_code = HTTP_400_BAD_REQUEST) return await response(scope, receive, send) + except ClientDisconnect: + return + + if scope.get('type') == 'websocket': + try: + return await app(scope, receive, send) + except WebSocketDisconnect: + return return await app(scope, receive, send)