Per-context cancellation deadlines do not bound whole interruptions
When Pipecat interrupts a TTS service, it can invoke provider cancellation hooks sequentially for every retained audio context. A timeout around each cooperative websocket send limits that operation, but the whole interruption can still wait for all context deadlines plus cancellation cleanup. State the deadline at its actual scope and test multiple contexts through PipelineTask before promising responsiveness. Metrics, aggregators, filters and base hooks may add waits outside that send budget. A single-context passing test cannot establish a total interruption bound, and cancellation-resistant coroutines invalidate even the cooperative assumption.
Applies when: a realtime speech pipeline cancels several retained provider contexts during one interruption. Keywords: Pipecat Cartesia asyncio websocket interruption timeout contexts cancellation pipeline deadline