hermes - 💡(How to fix) Fix Installation: missing deps [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#28960Fetched 2026-05-20 04:00:59
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×4commented ×1

When running Hermes with the local browser tool (agent-browser + Playwright Chromium) inside a non-privileged Docker/Podman container, the browser fails to start due to two issues:

Error Message

After fixing the missing libraries:

Auto-launch failed: Chrome exited early (exit code: unknown) without writing DevToolsActivePort
[FATAL:zygote_host_impl_linux.cc:128] No usable sandbox! …

With AGENT_BROWSER_ARGS=--no-sandbox,--disable-dev-shm-usage:

browser_navigate works correctly — page loads, elements detected.

Root Cause

When running Hermes with the local browser tool (agent-browser + Playwright Chromium) inside a non-privileged Docker/Podman container, the browser fails to start due to two issues:

Fix Action

Fix / Workaround

Workaround: Set AGENT_BROWSER_ARGS=--no-sandbox,--disable-dev-shm-usage in ~/.hermes/.env.

Code Example

/home/hermes/.cache/ms-playwright/chromium-1223/chrome-linux64/chrome:
  error while loading shared libraries:
    libnspr4.so: cannot open shared object file: No such file or directory
    libnss3.so: cannot open shared object file: No such file or directory
    libnssutil3.so: cannot open shared object file: No such file or directory
    libsmime3.so: cannot open shared object file: No such file or directory

---

$ unshare -U /bin/true
unshare: unshare failed: Operation not permitted

---

Auto-launch failed: Chrome exited early (exit code: unknown) without writing DevToolsActivePort
[FATAL:zygote_host_impl_linux.cc:128] No usable sandbox!
RAW_BUFFERClick to expand / collapse

Missing system deps (libnspr4, libnss3) + no-sandbox gap for non-root containers break local browser

Summary

When running Hermes with the local browser tool (agent-browser + Playwright Chromium) inside a non-privileged Docker/Podman container, the browser fails to start due to two issues:

Issue 1: Missing shared libraries

Chromium crashes immediately with missing NSS libraries:

/home/hermes/.cache/ms-playwright/chromium-1223/chrome-linux64/chrome:
  error while loading shared libraries:
    libnspr4.so: cannot open shared object file: No such file or directory
    libnss3.so: cannot open shared object file: No such file or directory
    libnssutil3.so: cannot open shared object file: No such file or directory
    libsmime3.so: cannot open shared object file: No such file or directory

Fix: apt install libnspr4 libnss3

Playwright's --with-deps flag should install these, but they're missing in container environments (tested on Debian 13 trixie). These libraries may need to be included in the Docker image or documented as required system deps.

Issue 2: No sandbox bypass for container-level seccomp blocking user namespaces

The auto-injection logic in tools/browser_tool.py (line 2017–2041) detects two conditions for adding --no-sandbox,--disable-dev-shm-usage:

  1. Running as root (os.geteuid() == 0) — works when uid=0
  2. AppArmor userns restriction (/proc/sys/kernel/apparmor_restrict_unprivileged_userns == 1) — works on Ubuntu 23.10+

But it does not detect containers where unshare -U fails due to seccomp filtering:

$ unshare -U /bin/true
unshare: unshare failed: Operation not permitted

This is standard for non-privileged Docker/Podman containers — the seccomp profile blocks CLONE_NEWUSER even when /proc/sys/kernel/unprivileged_userns_clone = 1.

Workaround: Set AGENT_BROWSER_ARGS=--no-sandbox,--disable-dev-shm-usage in ~/.hermes/.env.

Suggested fix: Add a third detection path — try unshare -U /bin/true and inject --no-sandbox if it fails. Or check for /proc/1/cgroup containing Docker/Podman markers.

Environment

  • OS: Debian 13 (trixie) in Docker container
  • Kernel: 6.8.0-110-generic (Ubuntu host kernel)
  • Chromium: Playwright chromium-1223
  • Hermes version: current HEAD
  • User: uid=1003 (non-root)

Logs

After fixing the missing libraries:

Auto-launch failed: Chrome exited early (exit code: unknown) without writing DevToolsActivePort
[FATAL:zygote_host_impl_linux.cc:128] No usable sandbox! …

With AGENT_BROWSER_ARGS=--no-sandbox,--disable-dev-shm-usage:

browser_navigate works correctly — page loads, elements detected.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING