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}")