# NousResearch/hermes-agent · Skill load errors returning stub instead of None

## Open now

- Nothing open on GitHub.

A bug where skill load errors return a truthy stub or sentinel value instead of None, causing the errors to be mishandled as successful invocations or queued as input. Multiple corrections and related reports address this same incorrect return value behavior.

## TL;DR

- 8 member(s): 0 open issue(s), 3 closed issue(s), 0 open PR(s), 0 merged PR(s), 5 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_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.22`: 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

- #11200: \[Bug\]: Skill load failure is treated as successful slash-command invocation
- #14713: Slash-skill load failures are queued as input instead of surfacing an error
- #17283: \[Bug\]: Webhook gateway — skill auto-loader returns 'Failed to load skill' stub instead of None, silently dropping user prompt after extended uptime

## Prior & competing PRs

- **#14752: fix: skill load failures return None instead of queued sentinel (#14713)**. 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._
- **#17330: fix(skills): return None instead of truthy stub when skill load fails (#17283)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#14752`, `#14713`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#11380: fix(skills): treat slash-command load failures explicitly**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `4b17c2411ab2518fabe9d87872a03a47d3b8cfcc`
- **#11408: fix(skills): surface skill-load failures instead of returning success**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#14752`, `#11200`, `#14713`
- **#11545: Treat failed skill loads as actual command failures**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#11200`, `#11380`, `#11408`

## Fix status

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