zed-industries/zed · error · ValueError
unknown SWE-Atlas part '{part}' (valid: {valid})
Error message
unknown SWE-Atlas part '{part}' (valid: {valid}) What it means
Raised by config.canonical_part() when a SWE-Atlas part name, after strip().lower(), is not one of "qna", "rf", "tw". It is reached through common.parse_parts(), which the swe-atlas command uses to expand the --parts flag; the literal value "all" expands to all three parts before this check. Because normalization happens first, only genuinely different spellings fail — whitespace and case are forgiven.
Source
Thrown at crates/eval_cli/zed_eval/config.py:160
"harbor_version": HARBOR_VERSION,
"modal_client_version": MODAL_VERSION,
}
def get_judge(name: str) -> JudgeConfig:
try:
return JUDGES[name]
except KeyError as error:
valid = ", ".join(sorted(JUDGES))
raise ValueError(f"unknown judge preset '{name}' (valid: {valid})") from error
def canonical_part(part: str) -> str:
normalized = part.strip().lower()
if normalized in ("qna", "rf", "tw"):
return normalized
valid = ", ".join(("qna", "rf", "tw"))
raise ValueError(f"unknown SWE-Atlas part '{part}' (valid: {valid})")
def resolve_model_preset(model: str) -> str:
return MODEL_PRESETS.get(model, model)
View on GitHub (pinned to bc538def45)
Solutions
- Use only qna, rf, tw (any case) or all: --parts rf,qna or --parts all.
- If you meant a whole benchmark, pass the benchmark id as a selector (e.g. zed-eval run swe-atlas-rf) instead of --parts.
- Update eval_cli if a newly announced part should be supported, since the valid set is hard-coded in config.canonical_part.
Example fix
# before zed-eval swe-atlas --parts code,tests # -> ValueError: unknown SWE-Atlas part 'code' (valid: qna, rf, tw) # after zed-eval swe-atlas --parts qna,rf,tw # or --parts all
Defensive patterns
Strategy: validation
Validate before calling
from zed_eval.common import parse_parts
try:
parts = parse_parts([raw_parts])
except ValueError as error:
raise SystemExit(str(error))
if not parts:
raise SystemExit("pass --parts with qna/rf/tw (or all)") Type guard
def is_valid_part(part: str) -> bool:
return part.strip().lower() in {"qna", "rf", "tw"} Try / catch
try:
parts = resolve_suite_parts(args)
except ValueError as error:
raise SystemExit(str(error)) # suggests --parts rf,qna or --parts all Prevention
- Default scripts to --parts all when the full suite is intended.
- Remember parts are the short aliases (qna/rf/tw), not benchmark ids.
- Case and surrounding whitespace are safe (normalized); anything else fails.
When it happens
Trigger: Running zed-eval swe-atlas --parts with a typo (qn, tww, ref) or a full benchmark id instead of the part alias (--parts swe-atlas-rf); passing --parts all,rf works, but --parts alles or any other unknown token raises from parse_parts -> canonical_part.
Common situations: Confusing part aliases (qna/rf/tw) with benchmark ids (swe-atlas-qna/swe-atlas-rf/swe-atlas-tw); autocomplete typos in shell scripts; docs drift after a new SWE-Atlas part was added but the local CLI is older (so the part is unknown to this version).
Related errors
- choose at least one SWE-Atlas part with --parts (e.g. --part
- unknown benchmark '{benchmark_id}' (valid: {valid})
- unknown benchmark '{selector}' (valid: {valid})
- unknown judge preset '{name}' (valid: {valid})
- choose at least one benchmark to run
AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16).
Data as JSON: /api/errors/af99510f297d8c6b.
Report an issue: GitHub.