From 2d91336aecb44b366aa0bbbf583baf18938f3725 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Wed, 25 Mar 2026 22:44:38 +0530 Subject: [PATCH] fix: cleanup rtf on pipeline finish --- api/services/pipecat/realtime_feedback_observer.py | 4 ++++ api/services/pipecat/run_pipeline.py | 1 + 2 files changed, 5 insertions(+) diff --git a/api/services/pipecat/realtime_feedback_observer.py b/api/services/pipecat/realtime_feedback_observer.py index 511c938..fe5f641 100644 --- a/api/services/pipecat/realtime_feedback_observer.py +++ b/api/services/pipecat/realtime_feedback_observer.py @@ -121,6 +121,10 @@ class RealtimeFeedbackObserver(BaseObserver): self._clock_start_time = None self._pts_start_time = None + async def cleanup(self): + """Clean up resources. Must be called when the observer is no longer needed.""" + await self._cancel_clock_task() + async def _handle_interruption(self): """Handle interruption by clearing queued bot text. diff --git a/api/services/pipecat/run_pipeline.py b/api/services/pipecat/run_pipeline.py index abbe20b..4b19379 100644 --- a/api/services/pipecat/run_pipeline.py +++ b/api/services/pipecat/run_pipeline.py @@ -913,4 +913,5 @@ async def _run_pipeline( except asyncio.CancelledError: logger.warning("Received CancelledError in _run_pipeline") finally: + await feedback_observer.cleanup() logger.debug(f"Cleaned up context providers for workflow run {workflow_run_id}")