{"record":{"id":"d5e24d0eb64e3800","repo":"abhigyanpatwari/GitNexus","slug":"label-is-unavailable-root-exc","errorCode":null,"errorMessage":"{label} is unavailable: {root}: {exc}","messagePattern":"(.+?) is unavailable: (.+?): (.+?)","errorType":"exception","errorClass":"SandboxError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/runtime_mounts.py","lineNumber":144,"sourceCode":"    return (snapshot.mount,)\n\n\ndef ce_plugin_dir_for_arm(arm: str, snapshot: CePluginSnapshot | None) -> str | None:\n    \"\"\"Return Claude's fixed in-sandbox plugin path only for CE arms.\"\"\"\n\n    ce_plugin_mounts_for_arm(arm, snapshot)\n    return SANDBOX_CE_PLUGIN if arm in CE_ARMS else None\n\n\ndef _validated_runtime_root(path: Path, *, label: str) -> Path:\n    \"\"\"Return one real directory without accepting any symlink hop.\"\"\"\n\n    root = path.expanduser().absolute()\n    try:\n        mode = root.lstat().st_mode\n        resolved = root.resolve(strict=True)\n    except OSError as exc:\n        raise SandboxError(f\"{label} is unavailable: {root}: {exc}\") from exc\n    if stat.S_ISLNK(mode) or not stat.S_ISDIR(mode) or resolved != root:\n        raise SandboxError(f\"{label} must be a real directory: {root}\")\n    return root\n\n\ndef _validated_runtime_component(\n    root: Path,\n    relative: str,\n    target: str,\n    *,\n    directory: bool,\n) -> ReadOnlyMount:\n    \"\"\"Validate one direct runtime component before exposing only that path.\"\"\"\n\n    source = root / relative\n    try:\n        mode = source.lstat().st_mode\n        resolved = source.resolve(strict=True)","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/runtime_mounts.py#L126-L162","documentation":"Raised by _validated_runtime_root (runtime_mounts.py:140-144) when lstat() or resolve(strict=True) raises OSError on the candidate path. The label is contextual (e.g. 'pinned GitNexus runtime', 'Compound Engineering plugin source', 'CE plugin snapshot parent'). SandboxError signals containment cannot be established.","triggerScenarios":"The gitnexus/, gitnexus-shared/, or plugin dir does not exist; permission denied (EACCES); a broken path component (ENOENT); I/O error reading the inode. Used for the GitNexus runtime roots, the CE plugin source, and the snapshot parent directory.","commonSituations":"Running the harness from a checkout that lacks gitnexus/dist or gitnexus-shared; pointing --ce-plugin-dir at a missing path; permissions on a shared CI runner; a repo not fully cloned.","solutions":["Confirm the path exists and is readable: `ls -ld <path>`.","Build the runtime: run `npm install && npm run build` in gitnexus/ and gitnexus-shared/.","Fix permissions or re-clone the repo so the component is present.","For CE plugin, point --ce-plugin-dir at the real plugin checkout."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"from pathlib import Path\np = Path(path).expanduser()\nif not p.exists() or not p.is_dir():\n    raise SystemExit(f\"{label} unavailable or not a directory: {p}\")","typeGuard":"def runtime_root_exists(path: str) -> bool:\n    from pathlib import Path\n    p = Path(path).expanduser().absolute()\n    return p.exists() and p.is_dir()","tryCatchPattern":null,"preventionTips":["Run `npm install && npm run build` in gitnexus/ and gitnexus-shared/ before benchmarking.","Verify the plugin dir is a real readable directory before passing --ce-plugin-dir.","Re-clone the repo if runtime components are missing."],"tags":["workflow-bench","sandbox","filesystem","runtime"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}