{"repo":"NousResearch/hermes-agent","public_id":"117111","display_label":"Fix misclassified 429 upstream errors draining API keys","summary":"These items address a bug where upstream-unavailable 429 responses from CommandCode are incorrectly treated as credential rate limit errors, causing healthy API keys to be unnecessarily exhausted. The work involves correcting this misclassification so API keys remain healthy during upstream outages.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":117575,"merged_at":"2026-09-20T22:28:22+00:00"},"resolution":{"state":"resolved","by":"pr-117575"},"freshness":{"state":"verified","last_verified_at":"2026-09-20T22:28:22+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":117111,"pr_number":117575,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-20T22:28:22+00:00"}],"members":[{"kind":"issue","number":117111,"title":"[Bug]: CommandCode upstream-unavailable 429 is misclassified as credential rate limit and exhausts a healthy API key","url":null,"state":"closed"},{"kind":"pr","number":117117,"title":"fix(agent): keep CommandCode keys healthy during upstream outages","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"30d14a3f73","number":0},{"kind":"pr","value":"#117575","number":117575}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":117575,"title":"fix(agent): CommandCode upstream-unavailable 429 keeps the API key healthy (#117111, salvage #117117)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/error_classifier.py","tests/agent/test_error_classifier.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}