nexu-io/open-design · error · SystemExit
job manifest not found: {path}
Error message
job manifest not found: {path} What it means
Raised by load_manifest in pet_job_status.py when run_dir/imagegen-jobs.json does not exist. The status tool reads that manifest to compute ready/blocked job counts, so without it there is nothing to report.
Source
Thrown at skills/hatch-pet/scripts/pet_job_status.py:14
#!/usr/bin/env python3
"""Show ready and pending $imagegen jobs for a Codex pet run."""
from __future__ import annotations
import argparse
import json
from pathlib import Path
def load_manifest(run_dir: Path) -> dict[str, object]:
path = run_dir / "imagegen-jobs.json"
if not path.exists():
raise SystemExit(f"job manifest not found: {path}")
return json.loads(path.read_text(encoding="utf-8"))
def jobs(manifest: dict[str, object]) -> list[dict[str, object]]:
raw = manifest.get("jobs")
if not isinstance(raw, list):
raise SystemExit("invalid imagegen-jobs.json: jobs must be a list")
return [job for job in raw if isinstance(job, dict)]
def completed_ids(manifest: dict[str, object]) -> set[str]:
return {
str(job["id"])
for job in jobs(manifest)
if job.get("status") == "complete" and isinstance(job.get("id"), str)
}
View on GitHub (pinned to 5be4028344)
Solutions
- Confirm --run-dir points at the directory that contains imagegen-jobs.json.
- If no run dir exists yet, create one with prepare_pet_run.py first.
- Check ls <run_dir>/imagegen-jobs.json actually exists.
- Re-run pet_job_status.py with the correct path.
Example fix
// before python pet_job_status.py --run-dir /tmp/pets # SystemExit: job manifest not found: /tmp/pets/imagegen-jobs.json // after python pet_job_status.py --run-dir /tmp/pets/sprout-20260101T000000Z
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
def manifest_exists(run_dir: Path) -> bool:
return (run_dir / "imagegen-jobs.json").exists() Prevention
- Always create the run dir with prepare_pet_run.py before querying status.
- Confirm --run-dir contains imagegen-jobs.json before invoking pet_job_status.py.
- Wrap status calls in a check that the manifest path exists.
When it happens
Trigger: Running pet_job_status.py against a directory that is not a pet run dir, or against a run dir that has not yet been initialized by prepare_pet_run.py.
Common situations: Typo in --run-dir; pointing at the parent of the run dir; running status before prepare_pet_run.py; the run dir was deleted/moved.
Related errors
- job manifest not found: {path}
- input image for job {job.get('id')} not found: {path}
- {target_dir} already contains pet files; pass --force to ove
- [last30days] Cannot read --synthesis-file: {exc}
- [CompetitorsPlan] Cannot read plan file: {exc}
AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12).
Data as JSON: /api/errors/ab1ba060c7519ab2.
Report an issue: GitHub.