abhigyanpatwari/GitNexus · critical · ValueError
oracle sanitization left the {label} recoverable
Error message
oracle sanitization left the {label} recoverable What it means
The harness probes each forbidden object (the original HEAD commit, and the hidden harness tree) with `git cat-file -e <sha>`. If the probe exits 0 (probe.ok), the object is still present in the object store and recoverable by the model, so sanitization has failed to purge it.
Source
Thrown at eval/workflow_bench/oracle_assets.py:437
["git", "-C", str(root), "fsck", "--full", "--no-progress", "--no-reflogs", "--unreachable"],
timeout=600,
tail_bytes=MAX_CLONE_REF_BYTES,
)
if fsck.stdout_tail.strip() or fsck.stderr_tail.strip():
raise ValueError("oracle sanitization left unreachable Git objects recoverable")
forbidden_objects: list[tuple[str, str]] = []
if original_head != sanitized_head:
forbidden_objects.append((original_head, "original commit"))
if hidden_tree:
forbidden_objects.append((hidden_tree, "hidden harness tree"))
for forbidden_object, label in forbidden_objects:
probe = run_managed(
["git", "-C", str(root), "cat-file", "-e", forbidden_object],
timeout=60,
)
if probe.ok:
raise ValueError(f"oracle sanitization left the {label} recoverable")
if probe.state != "exited" or probe.returncode not in {1, 128}:
raise ValueError(f"oracle sanitization could not verify removal of the {label}")
hidden_listing = _git_checked(
root,
["ls-tree", "-r", "--name-only", "HEAD", "--", HIDDEN_HARNESS_PATH.as_posix()],
timeout=60,
)
if hidden_listing or current.exists() or current.is_symlink():
raise ValueError("oracle sanitization left the benchmark harness visible")
if _git_checked(root, ["status", "--porcelain=v1", "--untracked-files=all"], timeout=60):
raise ValueError("oracle sanitization did not produce a clean task snapshot")
if _git_checked(root, ["rev-parse", "--verify", "HEAD^{commit}"], timeout=60) != sanitized_head:
raise ValueError("oracle sanitization did not retain its parentless task snapshot")
parents = _git_checked(root, ["show", "-s", "--format=%P", "HEAD"], timeout=60)
if parents:
raise ValueError("oracle sanitization snapshot unexpectedly retained parent history")
if _git_checked(root, ["remote"], timeout=60):View on GitHub (pinned to d540b00184)
Solutions
- Confirm: `git -C <clone> cat-file -e <original_head>`; if it prints nothing and exits 0, the object lives.
- Remove .keep files and repack aggressively: `rm -f <clone>/.git/objects/pack/*.keep && git -C <clone> repack -ad && git -C <clone> prune --expire=now`.
- Override pack retention: `git -C <clone> -c gc.bigPackThreshold=0 gc --prune=now`.
- If the object persists, re-clone from a sanitized source — the object store cannot be trusted.
Defensive patterns
Strategy: try-catch
Validate before calling
from pathlib import Path
from eval.workflow_bench.process_control import run_managed
def object_is_gone(clone: Path, sha: str) -> bool:
r = run_managed(["git", "-C", str(clone), "cat-file", "-e", sha], timeout=60)
return not r.ok
Type guard
def is_forbidden_object_recoverable(exc: BaseException) -> bool:
return isinstance(exc, ValueError) and "left the" in str(exc) and "recoverable" in str(exc)
Try / catch
try:
oracle_assets.sanitize_clone_for_hidden_oracles(clone)
except ValueError as exc:
# The original commit or harness tree is still cat-file-able: a real leak.
quarantine(clone)
raise AbortTask(str(exc)) from exc
Prevention
- Drop .keep files and set gc.bigPackThreshold=0 for benchmark clones.
- Never trust a partially pruned object store; re-clone when a forbidden object survives.
When it happens
Trigger: Triggered when repack/prune left the original commit or the eval/workflow_bench tree reachable-by-SHA in a packfile or loose object after HEAD was rewritten and refs/reflogs were cleared.
Common situations: A .keep file pinning the original pack; gc.bigPackThreshold keeping large packs un-pruned; concurrent gc; a git version that does not prune objects referenced only by the reflog before reflog expiry took effect.
Related errors
- oracle sanitization left unreachable Git objects recoverable
- oracle sanitization could not verify removal of the {label}
- oracle sanitization left the benchmark harness visible
- oracle sanitization left clone references recoverable
- oracle sanitization did not produce a clean task snapshot
AI-assisted analysis of abhigyanpatwari/GitNexus@d540b00184 (2026-08-12).
Data as JSON: /api/errors/b514fd1c5f415810.
Report an issue: GitHub.