Overview
Pipecat Flows defines a hierarchy of exceptions for handling errors during flow execution. All exceptions inherit fromFlowError, making it possible to catch all flow-related errors with a single handler.
Exception Hierarchy
FlowError
FlowInitializationError
initialize() with an invalid node config.
Raised by: FlowManager.initialize()
FlowTransitionError
FlowManager.set_node_from_config(), internal node transition logic
InvalidFunctionError
FlowsDirectFunctionWrapper.validate_function()
ActionError
tts_say, end_conversation, function) and custom registered actions. Common causes include missing required fields (e.g., text for tts_say), unregistered action types, or handler execution errors.
Raised by: ActionManager.execute_actions(), action handler registration
FlowReferenceError
Flow checks every tool and action handler the config names and raises this once, with every unresolved reference, rather than stopping at the first.
Raised by: Flow.__init__()
list[FlowProblem]
Every unresolved reference, in the order found. Also rendered into the
exception’s message, one per line.
FlowProblem
FlowReferenceError carries a list of them.
str
Stable identifier for the kind of problem. See the table below.
str
Human-readable description naming the node, function, or handler involved.
str | None
The node the problem is about, when there is one.
None for a problem in
global_functions.str | None
The function entry the problem is about, when there is one.