# NousResearch/hermes-agent · Gateway reconnect watcher wedge fixes after network loss

## Open now

- Nothing open on GitHub.

These issues and PRs address a bug where the gateway reconnect watcher could become permanently stuck (wedged) following a fatal network-loss error or a swallowed cancellation during adapter connect. Fixes involve preventing the wedge condition and adding detach-on-timeout logic around adapter connect.

## TL;DR

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

- #70344: Gateway silently deaf after generic network loss — reconnect watcher never starts post-escalation (0.19.0)

## Prior & competing PRs

- **#70987: fix(gateway): prevent reconnect watcher wedge after network-loss fatal error**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `gateway/run.py`, `tests/gateway/test_platform_reconnect.py`, `tests/gateway/test_runner_startup_failures.py`
- **#72366: fix(gateway): spawn platform reconnect watcher with task-level supervision (salvage of #71867 by @ygd58)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `gateway/run.py`, `tests/gateway/test_platform_reconnect.py`
- **#70345: fix(gateway): run adapter connect detach-on-timeout so a swallowed cancel can't wedge reconnect**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#71176`
- **#70502: fix(gateway): prevent reconnect watcher wedge after network-loss fatal error (#70344)**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#71177`, `#71176`, `#70345`
- **#70919: fix(gateway): prevent reconnect watcher wedge after network-loss fatal error**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#70987`, `#69880`, `#70344`
- **#71176: fix(gateway): detach-on-timeout for adapter connect so swallowed cancel can't wedge reconnect**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#70987`, `#72366`

## Fix status

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