Hermes "Failed to initialize agent: No module named 'concurrent_log_handler'"
Last checked
The error
Failed to initialize agent: No module named 'concurrent_log_handler'Reported on Windows 11, Hermes 0.16.0, Python 3.11, after an interrupted Desktop update followed by starting the CLI in PowerShell (issue #48316). Newer CLI builds word the startup failure differently but the module name is the same.
Hermes on Windows imports concurrent-log-handler for its log files, and that package is missing from the Python environment Hermes is running in. It is almost always a half-finished update: the code moved forward but the dependency environment did not. Do not pip install the package into system Python. Close Hermes Desktop, run hermes update from a terminal, then hermes pm repair if it still fails.
Why it happens
concurrent-log-handler is a Windows-only dependency (it serializes log rotation across the CLI, gateway and Desktop backend). Hermes imports it at startup on Windows, so if the environment that launches Hermes does not have it, the agent cannot initialize.
- An interrupted update. The reporter of issue #48316 started a Desktop update, closed it, then launched the CLI; the code was newer than the installed dependencies. The maintainer closed it as a stale or partial install, not a code bug.
- A launcher still pointing at a pre-migration venv. Hermes now runs only on Python 3.14 and its dependencies carry a Python 3.14 marker, so an old 3.11 to 3.13 venv gets no dependencies installed at all.
- A manual pip install of Hermes. pip install . on Python 3.11 to 3.13 installs hermes-agent with no dependencies, so the first Windows-only import fails.
- Stale bytecode after an update. The closing comment on the linked PR #48332 attributes the original report to a stale .pyc cache.
The fix
- 1 Close Hermes Desktop completely. On Windows a running app locks its files, which is what interrupts updates in the first place.
- 2 From PowerShell, run hermes update. On an old Python 3.11 to 3.13 venv this one update provisions the pinned Python 3.14 interpreter, rebuilds the dependency environment and repoints the launchers.
- 3 If the error remains, rebuild the recorded dependency set: hermes pm repair, then start Hermes again.
- 4 Check the result with hermes pm status and hermes doctor.
- 5 Still broken: back up config.yaml, .env and your memories, delete the code folder at %LOCALAPPDATA%\hermes\hermes-agent, and reinstall with the PowerShell installer: iex (irm https://hermes-agent.nousresearch.com/install.ps1)
hermes updateWhy pip install concurrent-log-handler is the wrong fix
Hermes no longer runs from a venv you maintain by hand. Its package manager (hermes pm) prepares a pinned dependency generation for Python 3.14 and selects it at launch. The official updating guide says a launcher that still points at a pre-migration venv should be repaired with hermes update, not by reinstalling into the old venv, and that a bare pip install is not equivalent to the managed install.
Installing the single missing package into system Python, or into an old venv, can clear this one import and leave the next missing dependency to fail a minute later. Let the updater rebuild the whole set.
hermes update
hermes pm repair
hermes pm statusStill failing?
- Run where hermes in PowerShell to confirm the launcher you are using is under %LOCALAPPDATA%\hermes\bin and not an old copy earlier on PATH.
- Read the latest update receipt in the Hermes data folder under logs\update_receipts (latest.json) to see which step failed.
- If another Hermes window or the Desktop backend was running during the update, quit them all and launch once, so the pending repair can finish.
Related errors
Hit a different error?
Paste any agent error and get the cause and fix in seconds.
Frequently asked questions
Does this happen on macOS or Linux?
Not from current code. Hermes only imports concurrent-log-handler on Windows; macOS and Linux use the standard library rotating file handler.
Is this the same as No module named 'hermes_cli'?
Same family, different damage. hermes_cli missing means the code checkout itself is broken; concurrent_log_handler missing means the code is fine but its dependency environment is incomplete.
Will reinstalling delete my sessions and config?
Deleting only the hermes-agent code folder leaves your data folder in place. Back up config.yaml, .env and memory files anyway before removing anything.
Stop firefighting agent errors
Decoding errors one at a time is the manual version of what BetterClaw automates. Run your agents on a no-code AI agent platform with managed models, retries and config validation built in.
Free plan available · Pro $49/mo · BYOK · 7-day money-back guarantee
