From 0f470767032780a16680341b4e94dd53f55563d2 Mon Sep 17 00:00:00 2001 From: mattie ruth backman Date: Tue, 31 Mar 2026 15:11:22 -0400 Subject: [PATCH] More RTVI version parsing improvements --- .../processors/frameworks/rtvi/processor.py | 17 +++++++++++++---- tests/test_rtvi_processor.py | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/pipecat/processors/frameworks/rtvi/processor.py b/src/pipecat/processors/frameworks/rtvi/processor.py index 8c8de903e..0a05560c0 100644 --- a/src/pipecat/processors/frameworks/rtvi/processor.py +++ b/src/pipecat/processors/frameworks/rtvi/processor.py @@ -268,10 +268,19 @@ class RTVIProcessor(FrameProcessor): match message.type: case "client-ready": data = None - try: - data = RTVI.ClientReadyData.model_validate(message.data) - except ValidationError: - pass + raw = message.data or {} + version = raw.get("version") + if isinstance(version, str): + about = RTVI.AboutClientData(library="unknown") + about_raw = raw.get("about") + if about_raw is not None: + try: + about = RTVI.AboutClientData.model_validate(about_raw) + except ValidationError: + logger.warning( + "Invalid 'about' data in client-ready message, ignoring." + ) + data = RTVI.ClientReadyData(version=version, about=about) await self._handle_client_ready(message.id, data) case "disconnect-bot": await self.push_frame(EndTaskFrame(), FrameDirection.UPSTREAM) diff --git a/tests/test_rtvi_processor.py b/tests/test_rtvi_processor.py index 36ff60b56..259b970dd 100644 --- a/tests/test_rtvi_processor.py +++ b/tests/test_rtvi_processor.py @@ -5,7 +5,7 @@ # import unittest -from unittest.mock import AsyncMock, patch +from unittest.mock import AsyncMock import pipecat.processors.frameworks.rtvi.models as RTVI from pipecat.processors.frameworks.rtvi.processor import RTVIProcessor