zed-industries/zed · warning · ValueError

no run id given and the local run index is empty. Launch a…

Error message

no run id given and the local run index is empty. Launch a run first, or pass a run id explicitly.

What it means

volume.py's resolve_run_id lets commands like `status` and `logs` omit a run id by defaulting to the most recent entry in the local run index (so a bare `zed-eval status` answers 'how is my latest run doing'). If no run id was given and run_index.most_recent() returns nothing — no run ever launched here — this ValueError is raised.

Solutions

  1. Launch a run first (zed-eval launch ...), then retry the bare command
  2. Or pass the run id explicitly: zed-eval status <run_id>
  3. Check the index lives under the $HOME you launched with
  4. Restore or regenerate the index if it was deleted but runs exist remotely

Example fix

# before
zed-eval status   # ValueError: no run id given and the local run index is empty

# after
zed-eval launch --agent zed ...
zed-eval status   # now defaults to the run just launched
Defensive patterns

Strategy: validation

Validate before calling

run_id = getattr(args, "run_id", None)
if not run_id and not run_index.most_recent():
    raise SystemExit("no run in the local index; launch one first or pass a run id")

Try / catch

try:
    run_id = resolve_run_id(args)
except ValueError as err:
    raise SystemExit(f"usage: {err}")

Prevention

When it happens

Trigger: A bare `zed-eval status` or `zed-eval logs` on a fresh install; the local index file deleted, pruned, or empty; running the query under a different $HOME than the launch used, so the index lives elsewhere.

Common situations: New machine or CI box with no run history; HOME changed between launch and query; cache-cleaning tools removing the index; index file corrupted into an empty document.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20). Data as JSON: /api/errors/2c431ce320a2577e. Report an issue: GitHub.

Appendix: source

Thrown at crates/eval_cli/zed_eval/volume.py:146

    run_args = argparse.Namespace(**vars(args))
    run_args.experiment_name = row["experiment_name"]
    run_args.run_id = row["run_id"]
    return run_args


def resolve_run_id(args: argparse.Namespace) -> str:
    """Return the run id to act on, defaulting to the most recent local run.

    Commands like `status`/`logs` accept no run id at all, in which case we use
    the most recently launched run recorded in the local index so a bare
    `zed-eval status` answers "how's my latest run doing?".
    """
    run_id = getattr(args, "run_id", None)
    if run_id:
        return run_id
    entry = run_index.most_recent()
    if not entry:
        raise ValueError(
            "no run id given and the local run index is empty. Launch a run "
            "first, or pass a run id explicitly."
        )
    args.run_id = entry["run_id"]
    print(
        f"(no run id given; using most recent: {entry['run_id']} / "
        f"{entry.get('experiment_name')})",
        file=sys.stderr,
    )
    return entry["run_id"]


def command_runs(args: argparse.Namespace) -> int:
    entries = run_index.recent(args.limit)
    if getattr(args, "json", False):
        print_json(entries)
        return 0
    if not entries:

View on GitHub (pinned to f4178619ac)