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
- Launch a run first (zed-eval launch ...), then retry the bare command
- Or pass the run id explicitly: zed-eval status <run_id>
- Check the index lives under the $HOME you launched with
- 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
- Scripts should capture and reuse the run id printed at launch time
- Keep $HOME stable between launch and status commands
- Do not delete the local run index if you rely on bare status/logs commands
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
- provide a run_id or --job-dir
- no split specifications provided
- usage: ep split [input.jsonl] train.jsonl=80%…
- Cargo.toml not found in current directory. Please run this…
- Command failed with status
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)