Skip to content

Windows update: managed uv install fails even when uv is already installed #38617

Description

@tsktech

Summary

On Windows, hermes update attempted to install managed uv into the Hermes bin directory and failed, even though uv was already installed and available on PATH.

The update continued using pip, so Hermes itself was eventually usable, but the managed uv step failed and may confuse users during update.

Environment

  • OS: Windows 11
  • Shell: PowerShell
  • Hermes project path: C:\Users\Srika\AppData\Local\hermes\hermes-agent
  • Python: 3.11.15
  • Node.js: v24.15.0
  • Existing uv install:
    • uv 0.11.14 (3fdfdc7d4 2026-05-12 x86_64-pc-windows-msvc)
    • C:\Users\Srika\.local\bin\uv.exe

What happened

During hermes update, the updater printed:

→ Updating Python dependencies...
  → Installing managed uv into C:\Users\Srika\AppData\Local\hermes\bin ...
  ✗ Failed to install managed uv: Command '['powershell', '-ExecutionPolicy', 'Bypass', '-c', 'irm https://astral.sh/uv/install.ps1 | iex']' returned non-zero exit status 1.

However, uv was already installed and working:

uv --version
where.exe uv

Output:

uv 0.11.14 (3fdfdc7d4 2026-05-12 x86_64-pc-windows-msvc)
C:\Users\Srika\.local\bin\uv.exe

The Hermes bin folder existed:

Test-Path "$env:LOCALAPPDATA\hermes\bin"

Output:

True

But the managed uv.exe was missing there:

Test-Path "$env:LOCALAPPDATA\hermes\bin\uv.exe"

Output:

False

Workaround used

Copied the already-working uv.exe into the Hermes managed bin path:

Copy-Item "$env:USERPROFILE\.local\bin\uv.exe" "$env:LOCALAPPDATA\hermes\bin\uv.exe" -Force

Verified:

& "$env:LOCALAPPDATA\hermes\bin\uv.exe" --version

Output:

uv 0.11.14 (3fdfdc7d4 2026-05-12 x86_64-pc-windows-msvc)

After putting Hermes bin first in PATH for the session:

where.exe uv

Output:

C:\Users\Srika\AppData\Local\hermes\bin\uv.exe
C:\Users\Srika\.local\bin\uv.exe

Expected behavior

If uv is already available on PATH, hermes update should either:

  1. Use the existing uv, or
  2. Copy/link it into the Hermes managed bin path, or
  3. Provide a clearer recovery message if the managed install script fails.

Actual behavior

Hermes tried to run the uv PowerShell installer, failed with a non-zero exit status, and did not fall back to the existing working uv.exe on PATH.

Why this matters

For Windows users, this looks like a serious update failure even though the system already has a valid uv installation. A fallback to existing PATH uv, or a clearer message, would make the update process much smoother.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existsarea/install-updateInstaller, updater, packaging, wheels, doctorcomp/cliCLI entry point, hermes_cli/, setup wizardpython:uvPull requests that update python:uv codetype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions