zed-industries/zed · error · FileNotFoundError
suite not found: {namespace}/{suite_id}
Error message
suite not found: {namespace}/{suite_id} What it means
Raised as FileNotFoundError by the Modal function suite_status(namespace, suite_id) when scan_rows over /data/runs finds no run whose recorded metadata matches both the namespace and the suite_id. Suite ids are minted at launch (mint_suite_id / prepare_benchmark_suite) and stored in each run's request/state on the volume; this endpoint simply reports nothing matched.
Source
Thrown at crates/eval_cli/zed_eval/modal_app.py:611
if entry:
history.append(entry)
result["history"] = history
return result
return load_json(root / "index.json") or {"baselines": []}
@app.function(
image=controller_image,
cpu=1,
memory=512,
timeout=300,
volumes={"/data": volume},
)
def suite_status(namespace: str, suite_id: str) -> list[dict[str, Any]]:
reload_volume()
rows = scan_runs(namespace=namespace, suite_id=suite_id)
if not rows:
raise FileNotFoundError(f"suite not found: {namespace}/{suite_id}")
rows.sort(key=lambda row: row.get("created_at") or row.get("run_id") or "")
return rows
def write_run_inputs(run_dir: pathlib.Path, run_request: dict[str, Any]) -> None:
write_json(run_dir / "request.json", run_request)
write_json(run_dir / "run-metadata.json", harness_command.run_metadata(run_request))
task_names = run_request.get("task_names") or []
(run_dir / "selected-tasks.txt").write_text(
"\n".join(task_names) + ("\n" if task_names else "")
)
@app.function(
image=controller_image,
cpu=1,
memory=512,
timeout=300,View on GitHub (pinned to bc538def45)
Solutions
- List what actually exists: zed-eval list (list_runs) with --namespace to see real experiment names and run/suite ids.
- Re-run suite status with the correct namespace: the identifier is namespace/suite_id.
- If the runs were pruned, relaunch; if they predate suite_id bookkeeping, query by run id instead.
Example fix
# before zed-eval suite-status swe-atlas-20260101-ab12 # wrong namespace # -> FileNotFoundError: suite not found: me/swe-atlas-20260101-ab12 # after zed-eval list --namespace jane # find the real namespace zed-eval suite-status swe-atlas-20260101-ab12 --namespace jane
Defensive patterns
Strategy: try-catch
Validate before calling
rows = list_function.remote(namespace=namespace)
known_suites = {row.get("suite_id") for row in rows if row.get("suite_id")}
if suite_id not in known_suites:
# discover what exists instead of calling suite_status and failing
print("known suites:", sorted(known_suites)) Try / catch
try:
rows = suite_status_function.remote(namespace, suite_id)
except FileNotFoundError:
# fall back to a namespace-wide listing to discover the right id
rows = list_function.remote(namespace=namespace, limit=100)
rows = [r for r in rows if r.get("suite_id") == suite_id] Prevention
- Always pass --namespace when querying other users' suites; ids are only unique per namespace.
- Record suite ids (printed at launch as 'Suite:') in your run notes or tooling.
- Verify against zed-eval list before assuming a suite is gone — typos are the most common cause.
When it happens
Trigger: Querying a suite id with a typo or wrong case; passing the wrong --namespace (suite ids are only unique within a namespace); the suite's runs were pruned by cleanup; runs launched by an older CLI that did not record suite_id in run metadata; querying before any run of the suite finished creating its record.
Common situations: Monitoring a teammate's suite without setting --namespace; copying a suite id from a truncated terminal line; retrying a status command days later after volume cleanup deleted old artifacts.
Related errors
- unknown benchmark '{benchmark_id}' (valid: {valid})
- unknown benchmark '{selector}' (valid: {valid})
- build ids may only contain lowercase letters, numbers, '.',
- app '{args.app_name}' not deployed (or function '{function_n
- could not locate run '{run_id}' in the local run index ({run
AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16).
Data as JSON: /api/errors/7d50faab31c68715.
Report an issue: GitHub.