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:
- Open the agent’s page in the dashboard and look at the Circuit Breaker card and the audit log rows just before the trip.
- 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.
- Click Reset circuit breaker on the card to close it immediately instead of waiting. Suspending and re-activating the agent does not reset it.
Related: Presidio circuit breaker
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.