NousResearch/hermes-agent · error · RuntimeError
op read failed for {reference!r}: {err}
Error message
op read failed for {reference!r}: {err} What it means
Error "op read failed for {reference!r}: {err}" thrown in NousResearch/hermes-agent.
Source
Thrown at agent/secret_sources/onepassword.py:301
cmd,
env=_op_child_env(token_value),
capture_output=True,
text=True,
encoding="utf-8",
errors="replace",
timeout=_OP_RUN_TIMEOUT,
)
except subprocess.TimeoutExpired as exc:
raise RuntimeError(
f"op read timed out after {_OP_RUN_TIMEOUT}s for {reference!r}"
) from exc
except OSError as exc:
raise RuntimeError(f"failed to invoke op: {exc}") from exc
if proc.returncode != 0:
err = _scrub(proc.stderr or "")[:200]
if err:
raise RuntimeError(f"op read failed for {reference!r}: {err}")
raise RuntimeError(
f"op read exited {proc.returncode} for {reference!r}"
)
# `op` appends a trailing newline; strip only that so a value with
# intentional internal/edge spaces survives. But a value that is empty or
# whitespace-only is treated as empty: applying it would silently clobber a
# good .env/shell credential with effectively nothing.
value = (proc.stdout or "").rstrip("\r\n")
if not value.strip():
raise RuntimeError(f"op read returned an empty value for {reference!r}")
return value
# ---------------------------------------------------------------------------
# Fetch
# ---------------------------------------------------------------------------
View on GitHub (pinned to c896c09c42)
Solutions
- Read the op error in the message and fix it (wrong reference, locked vault, auth).
- Verify the secret reference (op://vault/item/field) is correct.
When it happens
Trigger: Thrown at agent/secret_sources/onepassword.py:301 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/ad6b98a3de4e48f9.
Report an issue: GitHub.