II.
RetryPolicy JSON
Structured · liveretry-policy:claude-code-default
Claude Code default API retry policy json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "retry-policy:claude-code-default",
"_kind": "RetryPolicy",
"_file": "lifecycle/retry-policies/claude-code-policies.yaml",
"_cluster": "lifecycle",
"attributes": {
"displayName": "Claude Code default API retry policy",
"variant": "default",
"maxRetries": 10,
"maxRetriesOnOverload": 3,
"baseDelayMs": 500,
"maxDelayMs": 32000,
"backoffStrategy": "exponential-jitter",
"jitterFactor": 0.25,
"honorRetryAfterHeader": true,
"floorOutputTokens": 3000,
"retryableStatusCodes": [
408,
409,
429,
500,
502,
503,
504,
529
],
"foregroundOnlyOnOverload": true,
"foregroundSources": [
"repl_main_thread",
"sdk",
"agent:custom",
"agent:default",
"agent:builtin",
"compact",
"hook_agent",
"hook_prompt",
"verification_agent",
"side_question",
"auto_mode"
],
"triggersFallbackModelOn": "repeated-overload",
"clearsAuthCacheOn": [
401,
403
],
"disablesKeepAliveOn": [
"ECONNRESET",
"EPIPE"
],
"description": "Default policy for the claude-code withRetry generator. Exponential backoff\nwith ~25% jitter, server Retry-After overrides computed delay. 529 overload\nretries are gated to user-blocking foreground sources only — background\nsources bail immediately to avoid capacity-cascade amplification. After\nMAX_529_RETRIES consecutive 529s on a foreground source, escalate to\nfallback model via FallbackTriggeredError.\n"
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "transport-client:claude-code-anthropic-direct",
"to": "retry-policy:claude-code-default",
"kind": "client_uses_retry_policy",
"attributes": {}
},
{
"from": "transport-client:claude-code-bedrock",
"to": "retry-policy:claude-code-default",
"kind": "client_uses_retry_policy",
"attributes": {}
}
]
}