# NousResearch/hermes-agent · Fix misleading 403 error message from policy gateways

## Open now

- 1 issue, 2 PRs open on GitHub.
- #125058: \[Bug\]: A 403 from a policy gateway in front of a custom endpoint is reported as "rejected your API key"
- PR #125080: fix(agent): surface a policy gateway's structured 403 reason instead of API-key copy
- PR #125094: fix(classifier): read a policy gateway's structured 403 refusal instead of blaming the API key

A bug where a structured 403 response from a policy gateway is incorrectly surfaced to the user as an API key rejection error. The members cover the bug report and two related fixes to correctly read and display the gateway's actual refusal reason.

## TL;DR

- 3 member(s): 1 open issue(s), 0 closed issue(s), 2 open PR(s), 0 merged PR(s), 0 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: `unresolved`. 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.

## Open related issues

- #125058: \[Bug\]: A 403 from a policy gateway in front of a custom endpoint is reported as "rejected your API key"

## Prior & competing PRs

- **#125080: fix(agent): surface a policy gateway's structured 403 reason instead of API-key copy**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `8d05423b56`
  - files: `agent/api_error_summary.py`, `agent/error_classifier.py`, `tests/agent/test_policy_gateway_403_reason.py`
- **#125094: fix(classifier): read a policy gateway's structured 403 refusal instead of blaming the API key**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `b127113cb`
  - files: `agent/api_error_summary.py`, `agent/error_classifier.py`, `agent/turn_failure_copy.py`, `tests/agent/test_error_classifier.py`, `tests/agent/test_summarize_api_error.py`

## Fix status

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