Hermes "backend exited before it became ready (SIGTERM)"
The backend is dying at startup, usually because a partial update left a broken virtual environment — a missing dependency, or on Windows, .pyd files locked by running Hermes processes so the venv could never be recreated. Run the backend in the foreground to see the real traceback, remove any pinned HERMES_DASHBOARD_SESSION_TOKEN from .env, quit all Hermes processes, then delete and recreate the venv.
Likely cause
The backend process starts and dies before it can report ready, and the cause is almost always a broken virtual environment left behind by a partial update rather than anything in your agent config. Reported variants: a `ModuleNotFoundError` for a dependency that never installed (yaml, annotated_doc) after a git code update succeeded but the dependency install failed, leaving stale packages in the venv; Windows auto-update failing every time because .pyd files in the venv are locked by still-running Hermes processes, so recreation cannot complete (issues #43268, #38122); and a dirty bundled repo checkout leaving the update in a loop. There is also a config-shaped variant: pinning HERMES_DASHBOARD_SESSION_TOKEN in .env puts Desktop LOCAL mode into a SIGTERM boot loop (issue #38575).
The fix
- 1 Run the backend in the foreground from a terminal and read the actual traceback. The SIGTERM message is the supervisor's summary; the real error is the Python exception underneath it.
- 2 If you pinned HERMES_DASHBOARD_SESSION_TOKEN in ~/.hermes/.env, remove that line. It puts Desktop LOCAL mode into a boot loop.
- 3 On Windows, fully quit Hermes and Hermes Desktop and confirm no hermes processes remain before updating — locked .pyd files are what makes venv recreation fail silently.
- 4 Delete and recreate the virtual environment, then reinstall. A partial update leaves stale packages that a repeat update will not repair.
- 5 If the traceback names a missing module, install that dependency explicitly before retrying the update.
Hit a different error?
Paste any agent error and get the cause and fix in seconds.
Frequently asked questions
Why does re-running the update not fix it?
Because the code update succeeds while the dependency install fails. Each retry pulls new code into the same broken venv. You have to recreate the environment, not update again.
Why is this so much worse on Windows?
Windows locks .pyd files that running processes have loaded. If any Hermes process is alive during the update, the venv cannot be replaced, and the updater fails without saying why.
Is SIGTERM the actual error?
No. SIGTERM is the supervisor killing a backend that never reported ready. The useful error is the Python traceback printed before it, which you only see by running the backend in the foreground.
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
