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 generate_pet_images.py when <run_dir>/imagegen-jobs.json does not exist on disk. The fallback generator requires a pre-existing manifest to know which jobs to (re)generate, so a missing manifest is a hard stop.

Source

Thrown at skills/hatch-pet/scripts/generate_pet_images.py:44

    "review",
]
CANONICAL_BASE_PATH = "references/canonical-base.png"


def parse_states(raw: str) -> list[str]:
    if raw.strip().lower() == "all":
        return ALL_STATES
    states = [item.strip() for item in raw.split(",") if item.strip()]
    unknown = sorted(set(states) - set(ALL_STATES))
    if unknown:
        raise SystemExit(f"unknown state(s): {', '.join(unknown)}")
    return states


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 manifest_jobs(manifest: dict[str, object]) -> list[dict[str, object]]:
    jobs = manifest.get("jobs")
    if not isinstance(jobs, list):
        raise SystemExit("invalid imagegen-jobs.json: jobs must be a list")
    return [job for job in jobs if isinstance(job, dict)]


def select_jobs(
    manifest: dict[str, object],
    *,
    states: list[str],
    skip_base: bool,
    job_ids: list[str],
) -> list[dict[str, object]]:
    selected_ids = set(job_ids)

View on GitHub (pinned to 5be4028344)

Solutions

  1. Confirm --run-dir points at the directory containing imagegen-jobs.json.
  2. Run the skill's job-creation/request step first so imagegen-jobs.json is written into run_dir.
  3. Restore imagegen-jobs.json from git or a backup if it was deleted mid-run.
Defensive patterns

Strategy: validation

Validate before calling

manifest = run_dir / 'imagegen-jobs.json'
if not manifest.exists():
    raise FileNotFoundError(f'no manifest at {manifest}; run the job-creation step first')

Prevention

When it happens

Trigger: Path(run_dir/'imagegen-jobs.json').exists() is false. Typically a wrong --run-dir or a run that was never initialized by the job-creation step.

Common situations: Passing a --run-dir that does not contain the pet run; running generate_pet_images.py before the manifest was created; the manifest file was deleted or never written by a prior failed step.

Related errors


AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12). Data as JSON: /api/errors/407d05605a1e15f5. Report an issue: GitHub.