# How to Debug Errors
CopilotKit provides visual error display for local development and debugging. This feature is completely free and requires no API keys.
## Quick Setup
```tsx
import { CopilotKit } from "@copilotkit/react-core";
export default function App() {
return (
{/* Your app */}
);
}
```
Avoid showing the dev console in production as it exposes internal error details to end users.
## When to Use Development Debugging
- **Local development** - See errors immediately in your UI
- **Quick debugging** - No setup required, works out of the box
- **Testing** - Verify error handling during development
## Programmatic Error Handling (v2)
The v2 API provides an `onError` callback on both `CopilotKitProvider` and `CopilotChat` for programmatic error handling. No `publicApiKey` is required.
### Provider-Level Error Handling
Catches all errors across the entire application:
```tsx
import { CopilotKitProvider } from "@copilotkit/react-core/v2";
{
// event.code — error type (e.g. "runtime_info_fetch_failed", "agent_run_failed")
// event.error — the Error object
// event.context — additional context (agentId, toolName, etc.)
console.error(`[CopilotKit ${event.code}]`, event.error.message);
errorTracker.capture(event);
}}
>
```
### Chat-Level Error Handling
Scoped to a specific chat's agent — fires in addition to the provider-level handler:
```tsx
import { CopilotChat } from "@copilotkit/react-core/v2";
{
showToast(`Agent error: ${event.error.message}`);
}}
/>
```
### Error Codes
| Code | Description |
|------|-------------|
| `runtime_info_fetch_failed` | Could not reach the runtime `/info` endpoint |
| `agent_connect_failed` | Agent connection (thread setup) failed |
| `agent_run_failed` | Agent run rejected (e.g. network error) |
| `agent_run_failed_event` | Agent's `onRunFailed` subscriber fired |
| `agent_run_error_event` | Agent sent a `RUN_ERROR` event |
| `tool_argument_parse_failed` | Tool call arguments were not valid JSON |
| `tool_handler_failed` | A frontend tool handler threw an error |
Need to see the raw AG-UI events flowing between runtime and client? Use the [AG-UI Event Inspector](/troubleshooting/event-inspector) in VS Code for a live, filterable event stream.
Need to see the full event pipeline — what events your agent emits, whether they reach the client, and where they're dropped? See [Debug Mode](/troubleshooting/debug-mode) for detailed AG-UI event logging.
## Troubleshooting
### Development Debugging Issues
- **Dev console not showing:**
- Confirm `showDevConsole={true}`
- Check for JavaScript errors in the browser console
- Ensure no CSS is hiding the error banner