# NousResearch/hermes-agent · Empty credential pool entries treated as unauthenticated

## Open now

- Nothing open on GitHub.

Multiple fixes and reports addressing a bug where empty credential pool entries incorrectly caused providers to appear as authenticated in the model picker and CLI. Changes enforce that only non-empty credentials are treated as valid.

## TL;DR

- 6 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #28312. Verify it addresses your case.
- **Recommended:** read PR #28312 (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-28312`. 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.33`: 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

- #28140: Empty credential pool entries cause providers to show as authenticated in /model picker

## Prior & competing PRs

- **#20705: fix(model-picker): require real credentials in section 1 (api_key path)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#28312: fix(auth): treat empty credential pool entries as unauthenticated in /model picker (#28241)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_cli/model_switch.py`
- **#28150: fix(model-picker): ignore empty credential-pool entries**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `95846eddd`, `#28312`, `#28312`
- **#28190: fix(cli): empty credential pool entries no longer authenticate provider (#28140)**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `95846eddd`, `#28312`, `#28150`, `#28312`
- **#28241: fix(auth): treat empty credential pool entries as unauthenticated in /model picker**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `95846eddd2a2453049a090c2e8f9a96c5f1f480b`, `#28312`

## Fix status

- Merged to main in PR #28312 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-05-19`.
