@session.on_error async def handle_error(event: Er...
# ask-ai
r
@session.on_error async def handle_error(event: ErrorEvent): if event.error.recoverable: logger.warning(f"[Recoverable Error] Source: {event.source}, Error: {event.error}") else: logger.error(f"[Non-Recoverable Error] Source: {event.source}, Error: {event.error}") await session.say("Something went wrong while processing. Please try again in a moment.")
t
Thanks for reaching out, Riddhi. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
The
@session.on_error
decorator in LiveKit is used to handle errors during an
AgentSession
. It listens for error events and provides details about the error, including whether it is recoverable. Here’s how you can use it:
Copy code
@session.on_error
async def handle_error(event: ErrorEvent):
    if event.error.recoverable:
        logger.warning(f"[Recoverable Error] Source: {event.source}, Error: {event.error}")
    else:
        logger.error(f"[Non-Recoverable Error] Source: {event.source}, Error: {event.error}")
        await session.say("Something went wrong while processing. Please try again in a moment.")
Key Points:Recoverable Errors: If
event.error.recoverable
is
True
, the session can continue. Otherwise, manual intervention is required. • Error Sources: The error source (e.g., LLM, TTS, or STT) is accessible via
event.source
. For more advanced handling, you can implement logic to retry recoverable errors or transfer calls for non-recoverable ones. This ensures a smoother user experience and system reliability.