Skip to Content
Troubleshootingcircuit_breaker_open
Open in Claude Open in ChatGPT

circuit_breaker_open

What you’ll see

The proxy returns 403:

{ "error": "agent_halted", "reason": "circuit_breaker_open", "halt": { "state": "breaker_open", "recoverable_by": "time", "cause": "breaker_upstream_failure", "retry_after_seconds": 212 }, "correlation_id": "..." }

The agent stays Active in the dashboard — the breaker does not suspend it. The agent’s page shows a Circuit Breaker card in the open state with a countdown, and the audit log has a circuit_breaker.tripped row after the failures that caused it.

The agent’s MCP host (Claude Desktop, Claude Code, etc.) reports the response back through the tool; how it surfaces depends on the host.

Why

The breaker stops an agent hammering a platform that keeps failing. It trips on either:

  • 3 auth failures — the platform rejected the stored credential and a token refresh didn’t fix it (breaker_auth_failure)
  • 5 upstream failures — the call couldn’t be completed at all: network error, timeout, or the credential vault unreachable (breaker_upstream_failure)

The count only runs while failures keep coming: if 10 minutes pass without one, the next failure starts again at 1. Bad signatures, permission denials, pending approvals and upstream error responses such as a 404 do not count, and neither do PII-redaction failures.

After a 5-minute cooldown the breaker goes half-open: the next call is let through as a probe. A success closes it; a counted failure re-opens it for another 5 minutes.

See The circuit breaker for the full design.

Fix

Usually nothing: wait out retry_after_seconds, then retry one call. If the probe keeps failing:

  1. Open the agent’s page in the dashboard and look at the Circuit Breaker card and the audit log rows just before the trip.
  2. Address the cause:
    • Auth failures: reconnect the platform (the connection shows Re-auth needed) — see Re-authenticate a platform.
    • Upstream failures: check the platform’s status page.
  3. Click Reset circuit breaker on the card to close it immediately instead of waiting. Suspending and re-activating the agent does not reset it.

There’s a second, internal circuit breaker inside the PII redaction module that protects the proxy from a flapping Presidio service. That one is process-wide (not per-agent) and only affects orgs with the PII beta enabled. It surfaces as a PII redaction 502, not circuit_breaker_open. Don’t confuse the two.

Last updated on