Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Docker

Hermes Agent Update Failed: Causes and Fixes

By Freedom251 Team · · 12 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When Hermes Agent reports “Update failed”, the message usually identifies a blocked update path rather than a single bug. The correct fix depends on how Hermes was installed and which layer failed: source checkout, Desktop handoff, Python environment, Node/npm assets, Docker image, permissions, or a gateway that did not restart.

Start by identifying the installation that owns your Hermes files. For a managed source checkout, use hermes update --check, protect state with a snapshot or hermes update --backup, then run hermes update. For Docker, do not run the updater inside the container: pull the new image and recreate the container while retaining its data volume. Nix and package-managed installations must be upgraded with their owning package manager.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

First, identify what “update failed” means on your installation

Hermes Agent has different update mechanisms for different installation types. A command that is correct for a managed source checkout can be unsupported for a Docker image, a Nix profile, or a signed Desktop application. Running the wrong updater can leave code, dependencies, and gateway processes out of sync.

Installation or runtime Correct update approach Do not do this What to verify afterward
Managed source checkout Preview with hermes update --check, then run hermes update (optionally --backup) Do not replace the managed flow with ad-hoc Git or pip commands Version, configuration, health, gateway status, and one harmless workflow
Docker image Run docker pull nousresearch/hermes-agent:latest, recreate the container, and keep the existing data volume Do not expect hermes update inside an immutable image to update the host installation Container image, mounted data, configuration, gateway, and a real workflow
Nix installation Use nix flake update hermes-agent or upgrade the profile that owns Hermes Do not mix a Nix-managed binary with an unrelated checkout update The Nix profile revision and Hermes version
Package-manager installation Use the package manager that installed Hermes Do not overwrite package-owned files manually Package state, executable path, and runtime health
Desktop application Retry the Desktop update only after checking the terminal updater and logs Do not assume a Desktop “Update failed” message proves the CLI update failed Desktop logs, bootstrap installer log, update log, and backend startup

Run these commands before changing anything:

which hermes
hermes --version
hermes doctor

which hermes shows the executable being invoked, hermes --version establishes the current build, and hermes doctor reports installation and environment problems that may otherwise be mistaken for an update defect.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Use the safe recovery sequence

The following order minimizes the chance of turning a recoverable refusal into a half-updated checkout. Stop at the first step that explains the failure and fix that layer before retrying.

  1. Identify the active installation. Run which hermes, hermes --version, and hermes doctor. Confirm that the shell, Desktop backend, and any service are using the same installation.
  2. Preview the update. Run hermes update --check. This checks the target without applying code or restarting gateways.
  3. Protect important state. Use the normal Hermes snapshot process or run hermes update --backup. Confirm that the disk has enough free space for the backup, dependency installation, and build artifacts.
  4. Close conflicting processes. Exit Desktop windows, REPLs, and gateways that may hold files open. This is especially important on Windows, where locked files can block replacement.
  5. Use the owner’s update method. Run hermes update only for a managed source checkout. Pull and recreate a Docker image, update a Nix flake or profile, or use the package manager for package-owned installations.
  6. Read refusal messages literally. A lock, unwritable path, Python mismatch, Node/npm engine error, or concurrent repair each has a different remedy. Do not keep rerunning the same command without correcting the stated condition.
  7. Check configuration. Run hermes config check. If options are missing after a version change, run hermes config migrate, then check the configuration again.
  8. Verify the running system. Run hermes --version, hermes doctor, and hermes gateway status. Finish with one harmless tool call or channel workflow so that a merely updated file tree is not mistaken for a working installation.

Hermes deliberately stops in several of these situations because continuing could leave a half-updated checkout or a gateway running old code. A refusal is safer than forcing the process past a lock, permission error, or failed dependency step.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cause: the wrong update method

The most common failure is using a source-checkout command on an installation that is not owned by that updater. A Docker image is built as an immutable artifact; changing files inside a running container does not update the image you will use next time. Likewise, Nix and other package managers expect to control the files, hashes, and dependency closure themselves.

Managed source checkout

Use the built-in sequence:

hermes update --check
hermes update --backup
hermes update

The backup flag protects important state before the update applies changes. If you already have a normal snapshot policy, follow it; do not create several ad-hoc copies in the live state directory while an update is running.

Docker

Pull the new image and recreate the container:

docker pull nousresearch/hermes-agent:latest

Use the same environment variables, ports, mounts, and data volume as the existing container. The volume is what preserves profiles and other state; deleting it while recreating the container can look like a successful update followed by missing data. After recreation, check the container logs, confirm the mounted state is present, and run the Hermes health and gateway checks from the new container.

Nix and package managers

For Nix, update the flake input with nix flake update hermes-agent or upgrade the profile that owns Hermes. A package-owned installation must be upgraded by that package manager. If which hermes points into a Nix profile or another managed prefix, changing a separate checkout will not change the executable your shell runs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cause: an interrupted or concurrent update

Hermes protects the update process from two launches modifying the same checkout. The official refusal text is:

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

hermes: another Hermes launch is finishing an interrupted 'hermes update'; launch again in a moment.

Another documented message is Another launch is repairing an interrupted update. Both indicate that Hermes is completing owed repair work, not that a second update should be forced immediately.

What to do

  1. Wait for the repair process to finish. Do not delete lock files while a Hermes process is still active.
  2. Launch Hermes again after the short repair window.
  3. If a Desktop backend was started during the repair and appears to have failed, close and reopen Desktop after the repair completes.
  4. Inspect ~/.hermes/logs/update.log if the state is unclear. The log records the update output even when a terminal or SSH session disappears.

If the message persists after no Hermes process is running, first confirm the process list and ownership of the state directory. Remove a stale lock only when you have established that no updater or repair process remains and the log shows that the previous operation has ended.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cause: Git checkout or permission failure

A source update needs to write the checkout and its metadata. A Desktop build may report an error such as .../.git/hermes-update.lock is not writable. The updater can also stop when the gateway restart-record directory is unwritable, which is more likely on multi-profile installations.

Fix ownership and directory permissions

  • Check the active user, the checkout owner, the .git directory, and the Hermes state directory.
  • Make the active user the owner of files that user is expected to update.
  • Ensure the gateway restart-record directory is writable by the account that launches Hermes.
  • Retry the preview command before applying another update.

Avoid blanket sudo. Running one update as root can create root-owned caches, lock files, or state entries that prevent the normal account from updating later. Use elevated permissions only for a narrowly identified ownership correction, then return to the normal Hermes user.

When multiple profiles are involved

Each profile may have its own gateway state and restart records. Verify that the profile being updated is the one whose directory is writable and whose gateway appears in hermes gateway status. Correcting permissions for one profile does not automatically fix another.

Cause: Python runtime mismatch

Current Hermes documentation states that Hermes runs on Python 3.14 after its migration. A legacy Python 3.11–3.13 environment may complete the migration, but ordinary pip installations on those versions are unsupported. This distinction matters: a migration may finish in an older environment while a fresh or routine pip installation remains outside the supported path.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord | 6.35mm Jack, Durable Design, Stage and Home Studio Use, Low Noise Shielded Electric Cord for Bass, Keyboard, Amp, Mixer
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Diagnose the interpreter actually in use

  1. Run hermes doctor and note the interpreter it reports.
  2. Compare that interpreter with the Python environment used by the shell, Desktop backend, service, or container.
  3. Check that the update is not writing into one virtual environment while Hermes launches from another.
  4. After moving to a supported Python 3.14 environment, rerun the preview and update from that environment.

Do not “fix” a Python error by copying packages from an unrelated environment. That can produce an apparently updated version whose commands fail when a gateway or Desktop process loads a different interpreter.

Cause: Node or npm dependency mismatch

Hermes can update its Python code while Desktop, dashboard, or TUI assets remain mixed if the Node workspace cannot install or build. The resulting symptoms include a current Hermes version paired with an old interface, a failed asset build, or a Desktop backend that starts but serves stale files.

Check the runtime before reinstalling

node --version
npm --version

Compare both versions with the repository’s required engine range. The exact range is defined by the Hermes workspace; do not substitute an arbitrary Node release simply because it is newer. Use a supported LTS combination, then repair the failed workspace using the project’s normal dependency and build procedure.

Recognize a mixed update

  • The Python package reports the target version, but the Desktop or dashboard still displays old behavior.
  • The update log ends during npm installation or an asset build.
  • Node reports an engine incompatibility, peer-dependency failure, or unsupported syntax.
  • A TUI or dashboard opens but has missing controls or stale resources.

After repairing Node/npm, rerun the update or the failed workspace step as directed by the log. Then reopen the affected surface and test it separately from the gateway.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cause: Desktop-only handoff failure

A Desktop message that says only “Update failed” does not prove that the Hermes updater itself failed. A GitHub issue opened October 7, 2026, describes a macOS user whose Desktop update failed while the terminal update worked. The report lists Hermes Agent v0.21.5+8076.g85db7c3, Python 3.14.7, and macOS 26.6.2, but does not establish a root cause.

Treat this pattern as an independent Desktop handoff problem. Use the terminal updater, then inspect:

  • bootstrap-installer.log
  • ~/.hermes/logs/update.log
  • the Desktop application logs
  1. Close Desktop and any backend it started.
  2. Run which hermes, hermes --version, and hermes doctor in a terminal.
  3. Run hermes update --check, protect state, and complete the CLI update if the installation is a managed checkout.
  4. Run hermes config check and hermes gateway status.
  5. Reopen Desktop only after the terminal path is healthy.

If the CLI update succeeds but Desktop still reports failure, compare the executable path and environment used by Desktop with the terminal values. A GUI can be pointed at a different checkout, virtual environment, or state directory.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Cause: a stale gateway after the code update

A successful code update does not guarantee that every running gateway loaded the new code. Hermes compares live gateway versions and records a follow-up when one remains stale.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify before restarting

  1. Run hermes gateway status.
  2. Identify the profile whose live version differs from the updated code.
  3. Run hermes config check before restarting.
  4. Restart only the affected gateway profile.
  5. Run the status command again and perform one harmless tool or channel workflow.

Restarting every gateway at once can create avoidable downtime and makes it harder to identify which profile was unhealthy. A targeted restart preserves working profiles while you validate the stale one.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Cause: SSH disconnect, terminal closure, or deliberate interruption

Current updates ignore SIGHUP and mirror output to ~/.hermes/logs/update.log. A dropped SSH session therefore should not automatically kill the update. Reconnect and read the log before starting another update; launching a second updater can trigger the concurrent-repair protection.

A deliberate Ctrl-C, system shutdown, or forced termination is different. Hermes may leave dependency installation, a build, or a gateway restart owed to the next launch. Start Hermes again, allow the repair to finish, and then inspect the log and run the normal verification sequence.

How to interpret a partial-update message

Partial-update output usually names the layer that stopped. Use the wording to choose the remedy rather than deleting the checkout or reinstalling blindly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Message or symptom Likely layer Action Success check
Another launch is repairing an interrupted update Concurrent or interrupted updater Wait, let repair finish, then relaunch A new launch proceeds and the update log has no active repair
.git/hermes-update.lock is not writable Checkout ownership or permissions Correct ownership and write access for the active user hermes update --check completes
Gateway restart-record directory is unwritable State-directory permissions Fix the profile’s state directory; avoid running the updater as root Gateway status and restart bookkeeping work
Node engine or npm install failure Desktop, dashboard, or TUI dependency layer Use the workspace’s supported LTS Node/npm combination and repair the failed workspace Assets build and the affected interface loads the new version
Python environment or migration error Interpreter or package environment Use the supported Python 3.14 environment and rerun the owned update path hermes doctor is clean and commands run from the intended interpreter
Desktop says only “Update failed” while terminal succeeds Desktop handoff Complete and verify the CLI update; inspect bootstrap, update, and Desktop logs; reopen Desktop Desktop starts against the same healthy installation
Code version is current but gateway version is old Running process Restart only the affected gateway profile hermes gateway status shows the target version

Docker recovery without losing Hermes data

Docker updates are image replacements, not in-place source updates. The safe sequence is:

  1. Record the current container’s image, mounts, environment variables, ports, and restart policy.
  2. Confirm which host path or named volume contains Hermes state.
  3. Pull the target image with docker pull nousresearch/hermes-agent:latest.
  4. Stop and remove only the old container, not the data volume.
  5. Recreate the container with the same volume and configuration.
  6. Check container logs and run Hermes diagnostics inside the replacement container.
  7. Verify configuration, gateway status, and one harmless workflow.

If the replacement starts with an empty profile, stop and inspect the volume mapping before doing any further work. An empty profile usually means the new container was created without the original data volume, not that the image update erased valid state.

Configuration checks after an update

Run:

hermes config check

If options are missing or have changed format, migrate them:

hermes config migrate

Run hermes config check again after migration. Review the output for removed, renamed, or invalid options before starting a gateway. A code update can succeed while an obsolete setting prevents a service from starting cleanly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verification: prove that the installation works

Use all four checks rather than relying on a version string:

  1. Binary: hermes --version confirms which build the shell invokes.
  2. Environment: hermes doctor checks runtime and installation health.
  3. Configuration: hermes config check confirms that settings are valid after migration.
  4. Gateway: hermes gateway status confirms that live processes are on the expected version.

Finish with one low-risk tool call or channel workflow. This catches failures that static checks cannot: authentication loading, channel routing, gateway communication, and interface assets can all fail after the files themselves look current.

What not to do

  • Do not run hermes update in a Docker image and assume the host installation changed.
  • Do not mix Git, pip, Nix, and package-manager operations on the same installation without first determining which system owns it.
  • Do not delete ~/.hermes, the checkout, or a Docker volume as a first response.
  • Do not remove a lock file while another Hermes launch may still be repairing an interrupted update.
  • Do not use blanket sudo; it can create root-owned caches and state that block later updates.
  • Do not declare success because hermes --version changed while a gateway or Desktop process still runs old code.
  • Do not repeatedly retry an npm or Python failure without correcting the runtime mismatch named in the output.

When a reinstall is justified

A reinstall is a last resort after you have identified the owner, protected state, and captured logs. Consider it only when the checkout cannot be repaired, the package manager’s installation metadata is corrupt, or the Desktop application itself is damaged. Preserve profiles and configuration first, record the installation path, and reinstall through the same ownership model. Reinstalling a Docker image still requires preserving and remounting the data volume; reinstalling the image alone is not a profile backup.

Before removing anything, retain ~/.hermes/logs/update.log, the relevant Desktop or bootstrap installer log, the output of hermes doctor, and the exact failure message. Those details distinguish a permission problem from a runtime mismatch and prevent the same failure from returning on the new installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A compact decision checklist

  • Is Hermes a source checkout, Desktop app, Docker image, Nix profile, or package-managed binary?
  • Does which hermes point to the installation you intended to update?
  • Did hermes update --check identify a lock, permission, Python, Node, or gateway issue?
  • Is important state backed up and is there enough disk space?
  • Could another Hermes launch still be repairing an interrupted update?
  • Are .git, state, and gateway restart-record directories writable by the active user?
  • Are Python 3.14 and the workspace’s supported Node/npm versions in use?
  • For Docker, was the image pulled and the container recreated with the original volume?
  • Did hermes config check, hermes doctor, and hermes gateway status pass?
  • Did a harmless real workflow succeed after the update?

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

DockerHermes AgentNode.jsPythonsoftware troubleshootingsystem administration

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.