# NousResearch/hermes-agent · Desktop remote gateway connection flapping and WebSocket readiness issues

## Open now

- 0 issues, 1 PR open on GitHub.
- PR #39522: fix(desktop): validate remote gateway websocket readiness

Most members concern Hermes Desktop in remote gateway mode, with reports of connection errors, reconnect loops, or fallback to the local backend even when the remote backend appears reachable. Related pull requests touch stale backend exit handling and WebSocket readiness checks; a couple of members (Host/Origin guard, CLI --insecure) are adjacent WebSocket topics.

## TL;DR

- 15 member(s): 0 open issue(s), 8 closed issue(s), 1 open PR(s), 1 merged PR(s), 5 PR(s) closed without merging.
- A fix was merged to main in PR #65885. Verify it addresses your case.
- **Recommended:** read PR #65885 (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: `partially_resolved` · deciding PR(s): `pr-65885`. 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.09`: 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

- #37869: \[Bug\]: Desktop app shows remote connection failure while logs say remote backend is ready
- #38266: \[Bug\]: Hermes Desktop 0.15.1 remote gateway enters reconnect loop after successful connection
- #38332: Hermes Desktop remote gateway reaches backend but UI still shows startup error / falls back to local backend unless env-forced
- #38873: Hermes Desktop remote gateway mode flaps back to local backend after successful remote readiness
- #40083: Desktop: Electron renderer crash loop on remote gateway connection (v0.15.1)
- #40391: \[Bug\]: Hermes Desktop Remote Gateway — connects to REST but fails WebSocket / flaps back to local
- #41566: \[Bug\]: Desktop still shows 'Could not connect to Hermes gateway' after successful remote HTTPS/WSS verification
- #43904: \[Desktop v0.16.0\] Remote backend "ready" but UI stuck on red error dialog, loops in reset/repair cycle

## Prior & competing PRs

- **#17887: fix(cli): honor --insecure for dashboard WebSocket connections**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#40408: fix(security): bypass Host/Origin guard for authenticated WS connections (#38412, #40391)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `6ed9a2de8`, `dd28f2ac9`, `#38412`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#65885: fix(desktop): preserve active connection across stale backend exits (supersedes #62308)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `apps/desktop/electron/backend-connection-state.test.ts`, `apps/desktop/electron/backend-connection-state.ts`, `apps/desktop/electron/main.ts`, `apps/desktop/src/app/settings/gateway-settings.test.ts`, `apps/desktop/src/app/settings/gateway-settings.tsx`
- **#38292: fix(desktop): ignore stale backend exits**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `6feb40e702829639c22aae2ae29d63e9ac5e8508`, `39d09453f95e8aefc0c97e5d9b30ff341cae9ed8`
- **#39522: fix(desktop): validate remote gateway websocket readiness**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#39522`, `#38873`
  - files: `apps/desktop/electron/gateway-ws-probe.cjs`, `apps/desktop/electron/gateway-ws-probe.test.cjs`, `apps/desktop/electron/main.cjs`, `apps/desktop/package.json`
- **#41570: fix(desktop): increase WebSocket probe grace window from 750ms to 3s (fixes #41566)**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `39d09453f9`, `#41566`
- **#62308: fix(desktop): preserve active connection across stale backend exits**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#65885`

## Fix status

- Merged to main in PR #65885 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-07-16`.
- Subsystem: `apps/desktop`
