zed-industries/zed · error · ValueError

choose at least one SWE-Atlas part with --parts (e.g. --part

Error message

choose at least one SWE-Atlas part with --parts (e.g. --parts rf,qna or --parts all)

What it means

Raised by launch.resolve_suite_parts() when the swe-atlas suite command has no usable --parts value. The swe-atlas flow (command_swe_atlas) either uses explicit benchmark selectors or, when none are given, falls back to prepare_suite -> resolve_suite_parts, which requires --parts. parse_parts expands the literal "all" to qna+rf+tw and validates each remaining token via config.canonical_part.

Source

Thrown at crates/eval_cli/zed_eval/launch.py:608

        benchmark_ids,
        suite_id=mint_suite_id(args, len(benchmark_ids)),
        label_for_benchmark=lambda benchmark_id: benchmark_id,
    )


def command_run(args: argparse.Namespace) -> int:
    return execute_prepared_runs(
        args,
        prepare_benchmark_runs(args),
        benchmark_plan_entry,
    )


def resolve_suite_parts(args: argparse.Namespace) -> list[str]:
    parts = parse_parts([args.parts] if getattr(args, "parts", None) else [])
    if parts:
        return parts
    raise ValueError(
        "choose at least one SWE-Atlas part with --parts (e.g. --parts rf,qna or --parts all)"
    )


def suite_plan_entry(
    part: str, run_request: dict[str, Any], build_request: dict[str, Any] | None
) -> dict[str, Any]:
    return {
        "part": part,
        **benchmark_plan_entry(
            run_request["benchmark"]["id"], run_request, build_request
        ),
    }


def suite_entry_label(benchmark_id: str) -> str:
    for part, part_benchmark_id in benchmarks.SWE_ATLAS_PART_BENCHMARKS.items():
        if part_benchmark_id == benchmark_id:

View on GitHub (pinned to bc538def45)

Solutions

  1. Add --parts with at least one of qna, rf, tw, or the shorthand all: zed-eval swe-atlas --parts all.
  2. Alternatively pass explicit benchmark selectors to the swe-atlas command to bypass --parts entirely.
  3. In scripts, default the value: --parts "${PARTS:-all}".

Example fix

# before
zed-eval swe-atlas
# -> ValueError: choose at least one SWE-Atlas part with --parts ...

# after
zed-eval swe-atlas --parts all
Defensive patterns

Strategy: validation

Validate before calling

if not getattr(args, "parts", None) and not getattr(args, "benchmark", None):
    raise SystemExit("pass --parts (qna/rf/tw or all) or explicit benchmark selectors")

Try / catch

try:
    parts = resolve_suite_parts(args)
except ValueError as error:
    raise SystemExit(str(error))

Prevention

When it happens

Trigger: Running zed-eval swe-atlas with neither --parts nor benchmark selectors (e.g. in interactive mode where configure_interactive_suite leaves parts unset unless chosen); passing --parts "" or --parts "," which parse to an empty list; a wrapper script that only sets --parts conditionally.

Common situations: New users running the swe-atlas command bare, expecting it to default to all parts; scripted invocations where the parts variable is empty; declining the interactive part picker and the flag never being set.

Related errors


AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16). Data as JSON: /api/errors/6e5fa87b88704299. Report an issue: GitHub.