{"record":{"id":"ee28474b3db7b2cd","repo":"abi/screenshot-to-code","slug":"eval-set-not-found-request-set-name","errorCode":null,"errorMessage":"Eval set not found: {request.set_name}","messagePattern":"Eval set not found: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"warning","filePath":"backend/routes/evals.py","lineNumber":128,"sourceCode":"    files: List[str] = []  # Optional list of specific file paths to run evals on\n    diff_mode: bool = False\n    # When set, inputs come from {EVALS_DIR}/sets/{set_name}/inputs and runs\n    # attach to the active eval session (auto-created when none exists).\n    set_name: Optional[str] = None\n\n\ndef _resolve_set_run(\n    request: RunEvalsRequest,\n) -> tuple[Optional[str], Optional[eval_sessions.EvalSession], Dict[str, set[str]]]:\n    \"\"\"Validate the requested set and resolve the session + per-model skips.\"\"\"\n    if not request.set_name:\n        return None, None, {}\n    try:\n        set_info = eval_sets.get_set(request.set_name)\n    except eval_sets.InvalidSetNameError as e:\n        raise HTTPException(status_code=400, detail=str(e))\n    except eval_sets.EvalSetNotFoundError:\n        raise HTTPException(\n            status_code=404, detail=f\"Eval set not found: {request.set_name}\"\n        )\n    if set_info.image_count == 0:\n        raise HTTPException(\n            status_code=400, detail=f\"Eval set {request.set_name!r} has no images\"\n        )\n    try:\n        session = eval_sessions.resolve_session_for_run(request.set_name)\n    except eval_sessions.SessionSetMismatchError as e:\n        raise HTTPException(\n            status_code=400,\n            detail=(\n                f\"Active session {e.active_session.name!r} is pinned to set \"\n                f\"{e.active_session.eval_set!r}. Start a new session for set \"\n                f\"{request.set_name!r} first (POST /eval-sessions).\"\n            ),\n        )\n    skip_per_model: Dict[str, set[str]] = {}","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/abi/screenshot-to-code/blob/d026163f586dfa8c5c10d28c36edd59a9d3b0e88/backend/routes/evals.py#L110-L146","documentation":"404 raised inside _resolve_set_run in backend/routes/evals.py:128 when request.set_name passes name validation but eval_sets.get_set() raises EvalSetNotFoundError — the named set does not exist in the store (no such set directory/metadata on disk).","triggerScenarios":"POST /run_evals_stream with set_name of a set that was never created, was deleted, or is misspelled (but well-formed).","commonSituations":"Set was pruned between selection and run; different backend working directory so the sets root resolves elsewhere; typo in the set name.","solutions":["List existing sets via the eval-sets listing endpoint and pick the exact name.","Create the set (and upload its images) before referencing it in a run.","If the set should exist, check the backend's EVALS_DIR/sets location and working directory."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const sets = await (await fetch('/eval-sets')).json();\nif (!sets.some(s => s.name === setName)) throw new Error(`Unknown set: ${setName}`);","typeGuard":null,"tryCatchPattern":"if (res.status === 404) { /* re-list sets; offer to create it */ }","preventionTips":["Populate set pickers from the live listing endpoint.","Re-check existence right before long-lived runs start."],"tags":["http-404","eval-sets","fastapi"],"backgroundTag":null,"analyzedSha":"d026163f586dfa8c5c10d28c36edd59a9d3b0e88","analyzedAt":"2026-08-14T22:02:06.951Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}