| title | Error Debugging & Observability |
|---|---|
| description | Surface errors visually in development, and wire programmatic error handlers for Sentry / Datadog / your analytics pipeline in production. |
| icon | lucide/TriangleAlert |
CopilotKit provides a visual error console for local development and a programmatic onError callback for production observability. The visual console is completely free and requires no API keys.
import { CopilotKit } from "@copilotkit/react-core/v2";
export default function App() {
return (
<CopilotKit
runtimeUrl="/api/copilotkit"
showDevConsole={true} // [!code highlight]
>
{/* your app */}
</CopilotKit>
);
}- Local development — errors appear immediately in your UI
- Quick debugging — no setup required, works out of the box
- Testing — verify error handling during development
The v2 API provides an onError callback on both CopilotKit and CopilotChat. No publicApiKey is required.
Catches every error across the entire application:
import { CopilotKit } from "@copilotkit/react-core/v2";
<CopilotKit
runtimeUrl="/api/copilotkit"
onError={(event) => {
// 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);
}}
>
<App />
</CopilotKit>;Scoped to a specific chat's agent — fires in addition to the provider-level handler:
import { CopilotChat } from "@copilotkit/react-core/v2";
<CopilotChat
agentId="my-agent"
onError={(event) => {
showToast(`Agent error: ${event.error.message}`);
}}
/>;| Code | Description |
|---|---|
runtime_info_fetch_failed |
Could not reach the runtime's /info endpoint |
agent_connect_failed |
Agent connection (thread setup) failed |
agent_run_failed |
Agent run rejected (e.g. network error) |
agent_run_failed_event |
The agent's onRunFailed subscriber fired |
agent_run_error_event |
Agent emitted a RUN_ERROR event |
tool_argument_parse_failed |
Tool call arguments were not valid JSON |
tool_handler_failed |
A frontend tool handler threw |
- Confirm
showDevConsole={true} - Check for JavaScript errors in the browser console
- Ensure no CSS is hiding the error banner
- Provider-level
onErroris wired and forwards to your error tracker showDevConsoleis false in production builds- Agent IDs in errors match the agents registered on your runtime
- Critical error codes (
agent_run_failed,tool_handler_failed) are alerted on, not just logged