abhigyanpatwari/GitNexus · error · SandboxError

pinned GitNexus runtime component is unavailable: {source}:

Error message

pinned GitNexus runtime component is unavailable: {source}: {exc}

What it means

Raised by _validated_runtime_component (runtime_mounts.py:160-164) when lstat() or resolve(strict=True) on a specific runtime component path (e.g. gitnexus/dist, gitnexus/package.json, gitnexus/node_modules, gitnexus/vendor, gitnexus/hooks/claude, gitnexus-shared/dist, gitnexus-shared/package.json) raises OSError. The source path reported is root/relative.

Source

Thrown at eval/workflow_bench/runtime_mounts.py:164

        raise SandboxError(f"{label} must be a real directory: {root}")
    return root


def _validated_runtime_component(
    root: Path,
    relative: str,
    target: str,
    *,
    directory: bool,
) -> ReadOnlyMount:
    """Validate one direct runtime component before exposing only that path."""

    source = root / relative
    try:
        mode = source.lstat().st_mode
        resolved = source.resolve(strict=True)
    except OSError as exc:
        raise SandboxError(f"pinned GitNexus runtime component is unavailable: {source}: {exc}") from exc
    expected_type = stat.S_ISDIR(mode) if directory else stat.S_ISREG(mode)
    if stat.S_ISLNK(mode) or not expected_type or resolved != source:
        kind = "directory" if directory else "file"
        raise SandboxError(f"pinned GitNexus runtime component must be a real {kind}: {source}")
    return ReadOnlyMount(source=source, target=target)


def trusted_gitnexus_runtime_mounts() -> tuple[ReadOnlyMount, ...]:
    """Expose only the files needed by the pinned CLI and linked shared package."""

    runtime = _validated_runtime_root(
        HARNESS_ROOT / "gitnexus",
        label="pinned GitNexus runtime",
    )
    shared = _validated_runtime_root(
        HARNESS_ROOT / "gitnexus-shared",
        label="pinned GitNexus shared runtime",
    )

View on GitHub (pinned to d540b00184)

Solutions

  1. Build the package: `cd gitnexus && npm install && npm run build` (and same for gitnexus-shared).
  2. Confirm the named source file exists: `ls -l <source>`.
  3. Restore vendor/ via the documented vendoring step if missing.
  4. Check read permissions on the path.
Defensive patterns

Strategy: validation

Validate before calling

from pathlib import Path
source = Path(root) / relative
if not source.exists():
    raise SystemExit(f"runtime component missing: {source}")

Type guard

from pathlib import Path
def component_exists(root: str, relative: str) -> bool:
    return (Path(root) / relative).exists()

Prevention

When it happens

Trigger: The dist build output is missing (not built); node_modules absent (npm install not run); vendor directory missing; package.json unreadable (EACCES/ENOENT); a component path broken.

Common situations: Fresh clone without `npm install`/`npm run build`; a partial checkout; CI caching node_modules incorrectly; deleted vendor artifacts.

Related errors


AI-assisted analysis of abhigyanpatwari/GitNexus@d540b00184 (2026-08-12). Data as JSON: /api/errors/50d0390ff0e1f697. Report an issue: GitHub.