From 68d7e98f95b02c9ba925921dfc26ccf727a25a08 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Mon, 2 Mar 2026 16:33:25 -0500 Subject: [PATCH] Add defensive comment for given_fields() usage in tracing --- src/pipecat/utils/tracing/service_attributes.py | 6 +++--- src/pipecat/utils/tracing/service_decorators.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/pipecat/utils/tracing/service_attributes.py b/src/pipecat/utils/tracing/service_attributes.py index 97ac49d87..21a22341f 100644 --- a/src/pipecat/utils/tracing/service_attributes.py +++ b/src/pipecat/utils/tracing/service_attributes.py @@ -107,7 +107,7 @@ def add_tts_span_attributes( if ttfb is not None: span.set_attribute("metrics.ttfb", ttfb) - # Add settings if provided + # Use given_fields() defensively in case a service doesn't initialize all settings. if settings: for key, value in settings.given_fields().items(): if isinstance(value, (str, int, float, bool)): @@ -171,7 +171,7 @@ def add_stt_span_attributes( if ttfb is not None: span.set_attribute("metrics.ttfb", ttfb) - # Add settings if provided + # Use given_fields() defensively in case a service doesn't initialize all settings. if settings: for key, value in settings.given_fields().items(): if isinstance(value, (str, int, float, bool)): @@ -359,7 +359,7 @@ def add_gemini_live_span_attributes( if tools_serialized: span.set_attribute("tools.definitions", tools_serialized) - # Add settings if provided + # Use given_fields() defensively in case a service doesn't initialize all settings. if settings: for key, value in settings.given_fields().items(): if isinstance(value, (str, int, float, bool)): diff --git a/src/pipecat/utils/tracing/service_decorators.py b/src/pipecat/utils/tracing/service_decorators.py index 304ecb5e8..f4764d248 100644 --- a/src/pipecat/utils/tracing/service_decorators.py +++ b/src/pipecat/utils/tracing/service_decorators.py @@ -507,7 +507,8 @@ def traced_llm(func: Optional[Callable] = None, *, name: Optional[str] = None) - elif hasattr(self, "_system_instruction"): system_message = self._system_instruction - # Get settings from the service + # Use given_fields() defensively in case a service doesn't + # initialize all settings. params = {} if hasattr(self, "_settings"): for key, value in self._settings.given_fields().items():