Problem
When Anthropic returns overloaded_error (HTTP 529), OpenClaw surfaces it as a terminal error ("Subagent claude timed out" / session error) instead of triggering the configured model fallback chain.
Expected behavior
Per docs/concepts/model-failover.md, auth/rate-limit/timeout errors should trigger cooldown on the current auth profile, then rotation to fallback models. The overloaded_error should be classified as a failover-worthy transient error.
Observed behavior
- Multiple sessions simultaneously hit
overloaded_error from Anthropic
- Auth profile
errorCount stays at 0 (cooldown not triggered)
- Fallback model (
openai-codex/gpt-5.3-codex) never attempted
- Sub-agent sessions surface "timed out" to the parent
- Cron jobs show
lastRunStatus: error with no retry
Config
{
"model": {
"primary": "anthropic/claude-opus-4-6",
"fallbacks": ["openai-codex/gpt-5.3-codex"]
}
}
Error payload from Anthropic
{
"type": "error",
"error": {
"details": null,
"type": "overloaded_error",
"message": "Overloaded"
}
}
Suggested fix
Classify overloaded_error (and HTTP 529) as a failover-worthy transient error alongside existing rate-limit/timeout handling. Apply the same cooldown + profile rotation + model fallback chain.
Environment
- OpenClaw 2026.3.2 (85377a2)
- macOS 26.3 (arm64)
- Node 25.6.1
Problem
When Anthropic returns
overloaded_error(HTTP 529), OpenClaw surfaces it as a terminal error ("Subagent claude timed out" / session error) instead of triggering the configured model fallback chain.Expected behavior
Per
docs/concepts/model-failover.md, auth/rate-limit/timeout errors should trigger cooldown on the current auth profile, then rotation to fallback models. The overloaded_error should be classified as a failover-worthy transient error.Observed behavior
overloaded_errorfrom AnthropicerrorCountstays at 0 (cooldown not triggered)openai-codex/gpt-5.3-codex) never attemptedlastRunStatus: errorwith no retryConfig
{ "model": { "primary": "anthropic/claude-opus-4-6", "fallbacks": ["openai-codex/gpt-5.3-codex"] } }Error payload from Anthropic
{ "type": "error", "error": { "details": null, "type": "overloaded_error", "message": "Overloaded" } }Suggested fix
Classify
overloaded_error(and HTTP 529) as a failover-worthy transient error alongside existing rate-limit/timeout handling. Apply the same cooldown + profile rotation + model fallback chain.Environment