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)