Merge pull request #3185 from pipecat-ai/fix/websocket-service-cancelled-error-handling
fix(websocket): handle CancelledError to prevent reconnection on shutdown
This commit is contained in:
2
changelog/3185.fixed.md
Normal file
2
changelog/3185.fixed.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- Fixed an issue that caused `WebsocketService` instances to attempt
|
||||||
|
reconnection during shutdown.
|
||||||
@@ -12,7 +12,7 @@ from typing import Awaitable, Callable, Optional
|
|||||||
|
|
||||||
import websockets
|
import websockets
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from websockets.exceptions import ConnectionClosedOK
|
from websockets.exceptions import ConnectionClosedError, ConnectionClosedOK
|
||||||
from websockets.protocol import State
|
from websockets.protocol import State
|
||||||
|
|
||||||
from pipecat.frames.frames import ErrorFrame
|
from pipecat.frames.frames import ErrorFrame
|
||||||
@@ -137,6 +137,10 @@ class WebsocketService(ABC):
|
|||||||
# Normal closure, don't retry
|
# Normal closure, don't retry
|
||||||
logger.debug(f"{self} connection closed normally: {e}")
|
logger.debug(f"{self} connection closed normally: {e}")
|
||||||
break
|
break
|
||||||
|
except ConnectionClosedError as e:
|
||||||
|
# Error closure, don't retry
|
||||||
|
logger.warning(f"{self} connection closed, but with an error: {e}")
|
||||||
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
message = f"{self} error receiving messages: {e}"
|
message = f"{self} error receiving messages: {e}"
|
||||||
logger.error(message)
|
logger.error(message)
|
||||||
|
|||||||
Reference in New Issue
Block a user