# NousResearch/hermes-agent · Misleading API-key error messages for proxy/WAF 403 responses

## Open now

- Nothing open on GitHub.

The members concern 403 responses from a proxy, WAF, or relay being reported as an API-key rejection rather than a firewall or request block. One also mentions anthropic_messages routes sending custom extra_headers, and one is a bug report involving a relay blocking an OpenAI/Python User-Agent.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #115812. Verify it addresses your case.
- **Recommended:** read PR #115812 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

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

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: 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.

## Closed / duplicate issues

- #53099: \[Bug\]: Misleading API key rejection message when custom OpenAI-compatible relay blocks OpenAI/Python User-Agent

## Prior & competing PRs

- **#115812: fix(providers): WAF 403s report as a firewall block, not a rejected key; anthropic_messages routes send custom extra_headers (#24293, #9721, #53099, #70566, salvage #46002 #70567 #53114)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `agent/agent_runtime_helpers.py`, `agent/anthropic_adapter.py`, `agent/error_classifier.py`, `agent/error_surface.py`, `agent/turn_failure_copy.py`, `agent/turn_recovery.py`, `apps/desktop/src/i18n/en.ts`, `apps/desktop/src/lib/error-surface.test.ts`, `apps/desktop/src/lib/error-surface.ts`, `cli.py`, `cron/scheduler_failure_copy.py`, `hermes_cli/cli_chat_error_copy.py`, `tests/agent/test_anthropic_adapter_extra_headers.py`, `tests/agent/test_error_classifier.py`, `tests/agent/test_error_classifier_upstream_blocked.py`, `tests/agent/test_run_agent_codex_responses.py`, `tests/cron/test_cron_failure_notice_copy.py`, `tests/hermes_cli/test_single_query_exit_contract.py`, `tui_gateway/user_messages.py`, `ui-tui/src/app/userMessages.ts` (+1 more)
- **#53114: fix(agent): don't mislabel a proxy/WAF 403 block as an API-key rejection**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `cb062f7bd3d1`, `#115812`, `#24293`, `#9721`, `#53099`, `#70566`, `#46002`, `#70567`, `#53114`

## Fix status

- Merged to main in PR #115812 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-09-19`.
- Subsystem: `agent`
