From 2bdca8d22cc1cfbf647ba6fa178f3ce6f539929a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Tue, 26 Aug 2025 15:43:15 -0700 Subject: [PATCH] RTVIProcessor: make check sure client version is set --- src/pipecat/processors/frameworks/rtvi.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/pipecat/processors/frameworks/rtvi.py b/src/pipecat/processors/frameworks/rtvi.py index 2d91dd380..8d6e67551 100644 --- a/src/pipecat/processors/frameworks/rtvi.py +++ b/src/pipecat/processors/frameworks/rtvi.py @@ -1124,7 +1124,9 @@ class RTVIProcessor(FrameProcessor): self._bot_ready = False self._client_ready = False self._client_ready_id = "" - self._client_version = [] + # Default to 0.3.0 which is the last version before actually having a + # "client-version". + self._client_version = [0, 3, 0] self._errors_enabled = True self._registered_actions: Dict[str, RTVIAction] = {} @@ -1431,16 +1433,13 @@ class RTVIProcessor(FrameProcessor): async def _handle_client_ready(self, request_id: str, data: RTVIClientReadyData | None): """Handle the client-ready message from the client.""" - version = data.version if data else "unknown" + version = data.version if data else None logger.debug(f"Received client-ready: version {version}") - if version == "unknown": - self._client_version = [0, 3, 0] # Default to 0.3.0 if unknown - else: + if version: try: self._client_version = [int(v) for v in version.split(".")] except ValueError: logger.warning(f"Invalid client version format: {version}") - self._client_version = [0, 3, 0] about = data.about if data else {"library": "unknown"} logger.debug(f"Client Details: {about}") if self._input_transport: @@ -1623,7 +1622,7 @@ class RTVIProcessor(FrameProcessor): async def _send_bot_ready(self): """Send the bot-ready message to the client.""" config = None - if self._client_version[0] < 1: + if self._client_version and self._client_version[0] < 1: config = self._config.config message = RTVIBotReady( id=self._client_ready_id,