From 81ddd103f95fa63660387ea03c980e2c00ddc643 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Sun, 29 Mar 2026 10:27:54 -0400 Subject: [PATCH] Fix KeyError on context messages without role in RTVI observer Use dict.get() instead of direct key access to handle context messages that don't have a 'role' key, such as tool results. --- src/pipecat/processors/frameworks/rtvi/observer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pipecat/processors/frameworks/rtvi/observer.py b/src/pipecat/processors/frameworks/rtvi/observer.py index 3e4553b2f..7383fe811 100644 --- a/src/pipecat/processors/frameworks/rtvi/observer.py +++ b/src/pipecat/processors/frameworks/rtvi/observer.py @@ -612,7 +612,7 @@ class RTVIObserver(BaseObserver): # Handle OpenAI format (original implementation) elif isinstance(message, dict): - if message["role"] == "user": + if message.get("role") == "user": content = message["content"] if isinstance(content, list): text = " ".join(item["text"] for item in content if "text" in item)