pipecat icon indicating copy to clipboard operation
pipecat copied to clipboard

Pipecat's internal StartFrame validation is rejecting all frames

Open sumit63111 opened this issue 2 months ago • 1 comments

pipecat version

0.0.95

Python version

3.11

Operating System

ubuntu 22.04

Question

i’m building a speech-to-speech bot using Pipecat 0.0.95 with the FastAPI runner and the SmallWebRTC client. I wrote a custom processor (GeminiLiveService) that forwards microphone audio to Google’s Gemini Live native audio websocket and streams the responses back. The problem: Pipecat keeps logging that the processor hasn’t received a StartFrame yet, so every InputAudioRawFrame that the transport sends upstream is rejected

What I've tried

What I’ve Tried

Override Call Order: Placed await super().process_frame(frame, direction) first in the method.

Async Start Method: Added async def start() to launch the Gemini WebSocket as soon as the StartFrame arrives.

Lifecycle Control: Allowed Pipecat to drive the lifecycle—no manual push of StartFrame.

Transport-Level Logging: Confirmed via input transport logs that the StartFrame is emitted before any audio frames.

Audio Chunk Rate Adjustment: Reduced audio chunk rate to 10 ms — same results.

Context

Pipecat 0.0.95 (conda env)

Python 3.11

Ubuntu 22.04

Transport: SmallWebRTC (FastAPI runner)

CPU-only environment (no PyTorch/TensorFlow installed)

Minimal pipeline: transport.input() -> GeminiLiveService -> transport.output()

If there’s a correct pattern for building a custom AIService that consumes upstream frames immediately after start-up, I’d appreciate pointers. Thanks!

sumit63111 avatar Nov 11 '25 12:11 sumit63111

It sounds like your custom FrameProcessor(s) are blocking the StartFrame. Make sure that your FrameProcessors push all frames. Read more about it here: https://docs.pipecat.ai/guides/fundamentals/custom-frame-processor

Note: The StartFrame must traverse the entire Pipeline before any other processing is done. This ensures that all processors are initialized and ready for processing.

markbackman avatar Nov 11 '25 17:11 markbackman