Hermes "Timed out connecting to Hermes backend after 15000ms"
This is a Desktop-only timeout: the Electron app gives up proxying to the Python backend after a hardcoded 15 seconds. The CLI still works, which confirms the diagnosis. Common causes are the backend process never starting on Windows, `/api/profiles` taking ~35s while scanning large binaries in ~/.local/bin, and WSL2 networking. Start the backend manually first, and clear out ~/.local/bin.
Likely cause
This is a Desktop-only error — the Electron app proxies API requests to the Python backend and gives up after a hardcoded 15-second timeout. The CLI is unaffected, which is the giveaway. Three distinct root causes share the message: on Windows the Electron app does not always start the backend Python process at all, so nothing is listening (issue #49982); profile listing can genuinely take ~35 seconds when `/api/profiles` scans large binaries in ~/.local/bin during alias lookup, blowing the 15s ceiling (issues #48504, #49663); and on WSL2 the backend reports ready but Electron's requests never reach it because of cross-boundary networking (issue #43429).
The fix
- 1 Start the backend yourself before opening Desktop, then reconnect. If Desktop works once the backend is already running, the Electron app was failing to spawn it.
- 2 Check whether the CLI works. If the CLI is fine and only Desktop times out, this is the Electron IPC path, not your Hermes install or provider config.
- 3 Clear out large binaries from ~/.local/bin, or move them elsewhere. Profile alias lookup scans that directory and a few hundred MB there is enough to exceed 15 seconds.
- 4 On WSL2, run Desktop inside the same environment as the backend rather than crossing the Windows/WSL boundary — or use the CLI or TUI instead.
- 5 Reduce the number of configured profiles; the timeout is on profile listing, so fewer profiles means a faster response.
hermes serveHit a different error?
Paste any agent error and get the cause and fix in seconds.
Frequently asked questions
Why does the CLI work when Desktop doesn't?
The CLI talks to the agent directly. Desktop adds an Electron IPC layer with a 15-second timeout on top. When only Desktop fails, the problem is that layer, not your Hermes configuration.
Can I raise the 15-second timeout?
It is hardcoded in the Desktop IPC handler, so there is no supported setting for it. That is precisely what issue #48504 asks to change. Fix the slow path instead — usually ~/.local/bin.
Why would ~/.local/bin make my app time out?
Profile alias lookup walks that directory to resolve profile names. If it holds large binaries, the scan runs for tens of seconds and /api/profiles never answers inside the 15-second window.
Stop firefighting agent errors
Decoding errors one at a time is the manual version of what BetterClaw automates. Run your OpenClaw agents hosted with managed models, retries and config validation built in.
Free plan available · Pro $49/mo · BYOK · 7-day money-back guarantee
