Skip to content

fix: add cwd option to npm execFileSync to prevent uv_cwd error under systemd#1043

Open
kalier021 wants to merge 1 commit into
EKKOLearnAI:mainfrom
kalier021:fix/update-npm-cwd
Open

fix: add cwd option to npm execFileSync to prevent uv_cwd error under systemd#1043
kalier021 wants to merge 1 commit into
EKKOLearnAI:mainfrom
kalier021:fix/update-npm-cwd

Conversation

@kalier021

Copy link
Copy Markdown

Problem

When hermes-web-ui runs under systemd with WorkingDirectory pointing to the web-ui install directory, the npm subprocess spawned by runNpm() inherits this cwd. During 'npm install -g hermes-web-ui@latest', npm replaces files in that directory, invalidating the process current working directory and causing:

Error: ENOENT: no such file or directory, uv_cwd

This causes the Web UI built-in Update button to return HTTP 500 when running under systemd.

Fix

Add cwd: homedir() to the execFileSync call in runNpm() so npm runs from the user home directory instead of the web-ui install directory.

Changes

  • packages/server/src/controllers/update.ts: Import homedir from 'os', add cwd: homedir() to execFileSync options

Verification

Tested on production system running hermes-web-ui v0.6.1 under systemd. The /api/hermes/update endpoint previously returned 500 with uv_cwd error. After the fix, npm subprocess runs from the home directory without cwd errors.

… error

When hermes-web-ui runs under systemd with WorkingDirectory pointing to
the web-ui install directory, the npm subprocess inherits this cwd.
During 'npm install -g hermes-web-ui@latest', npm replaces files in that
directory, invalidating the process current working directory and
causing ENOENT: no such file or directory, uv_cwd.

Fix: pass cwd: homedir() to execFileSync so npm runs from the user
home directory instead of the web-ui install directory.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant