# NousResearch/hermes-agent · Provider overload errors triggering fallback chain

## Open now

- 2 issues, 3 PRs open on GitHub.
- #60761: Fallback chain never activates for 529 overloaded errors; once a fallback entry fails, it is permanently suppressed for the rest of the session
- #68771: \[Feature\]: Treat provider 5xx (503 capacity/overload) as fallback-chain trigger, not just retry-then-fail
- PR #11034: fix(run-agent): fail over on provider overload
- PR #60785: fix(agent): fix two fallback chain bugs (overloaded immediate fallback + TTL-based suppression)
- PR #68886: fix(agent): treat retryable 5xx as fallback-chain trigger

These issues and PRs concern making 5xx/529/503 provider overload and rate-limit errors trigger the fallback model chain rather than retrying or failing in place. Related concerns include fallback suppression bugs, credential pool rotation, and surfacing error details to users.

## TL;DR

- 11 member(s): 2 open issue(s), 2 closed issue(s), 3 open PR(s), 1 merged PR(s), 3 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-15120`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.15`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #60761: Fallback chain never activates for 529 overloaded errors; once a fallback entry fails, it is permanently suppressed for the rest of the session
- #68771: \[Feature\]: Treat provider 5xx (503 capacity/overload) as fallback-chain trigger, not just retry-then-fail

## Closed / duplicate issues

- #10210: \[Bug\]: Persistent HTTP 529 / “server cluster is currently under high load” errors in Hermes when using MiniMax M2.7
- #11314: \[Feature\]: 遇到http 529错误的时候，应该尝试切换成fallback的模型

## Prior & competing PRs

- **#15120: fix(credential-pool): correctness + rotation + cross-process sync**. merged to main · fix tier `suggested`
  - maintainer direction: category `merged`; implication `superseded`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#11034: fix(run-agent): fail over on provider overload**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#11492`, `#11492`
  - files: `run_agent.py`, `tests/run_agent/test_anthropic_error_handling.py`
- **#12554: fix(agent): fall back on rate limit when pool has no rotation room**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `1fc77f995`, `1fc77f995ba892b675f7120cf29fcd2d90add31c`
- **#15666: fix(fallback): trigger eager fallback on 503/529 provider overload**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#10210`, `#14038`, `#11314`, `#13636`
- **#60785: fix(agent): fix two fallback chain bugs (overloaded immediate fallback + TTL-based suppression)**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#60761`, `#60785`, `#60790`, `#60790`, `#60790`, `#58355`, `#50228`, `#56037`
  - files: `agent/chat_completion_helpers.py`, `agent/conversation_loop.py`, `tests/agent/test_fallback_chain_bugfix_60761.py`
- **#68886: fix(agent): treat retryable 5xx as fallback-chain trigger**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#58355`, `#71336`, `#58355`
  - files: `agent/conversation_loop.py`, `tests/agent/test_5xx_fallback.py`
- **#68926: fix(agent): treat retryable 5xx (overloaded/server_error) as fallback-chain trigger**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#68886`, `#68886`

## Fix status

- No merged fix on record.
- Subsystem: `agent`
