***

title: onDebugEvent
slug: /reference/typescript/agents/agent-base/on-debug-event
description: Lifecycle hook called when a debug event webhook is received.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[enable-debug-events]: /docs/server-sdks/reference/typescript/agents/agent-base/enable-debug-events

Lifecycle hook called when a debug event webhook is received at the `/debug_events`
endpoint. Override this method in a subclass to react to events programmatically.

<Note>
  [`enableDebugEvents()`][enable-debug-events] must be called before events will be delivered.
</Note>

## **Parameters**

<ParamField path="event" type={"Record<string, unknown>"} required={true} toc={true}>
  The debug event payload, including fields like `call_id`, `label`, and
  event-specific data.
</ParamField>

## **Returns**

`void | Promise<void>`

## **Example**

```typescript {10}
import { AgentBase } from '@signalwire/sdk';

class DebugAgent extends AgentBase {
  constructor() {
    super({ name: 'debug-agent', route: '/debug' });
    this.setPromptText('You are a helpful assistant.');
    this.enableDebugEvents(1);
  }

  override async onDebugEvent(
    event: Record<string, unknown>,
  ): Promise<void> {
    const label = event.label as string;
    if (label === 'llm_error') {
      console.log('LLM error:', event);
    } else if (label === 'barge') {
      console.log(`Barge detected: ${event.barge_elapsed_ms}ms`);
    }
  }
}

const agent = new DebugAgent();
await agent.serve();
```