{"record":{"id":"6ca65fa9e2986c56","repo":"abhigyanpatwari/GitNexus","slug":"no-tasks-selected-after-expensive-task-filtering","errorCode":null,"errorMessage":"no tasks selected after expensive-task filtering","messagePattern":"no tasks selected after expensive-task filtering","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/runner_tasks.py","lineNumber":73,"sourceCode":"        dependencies = task.get(\"sandbox_dependencies\", [])\n        if not isinstance(dependencies, list):\n            raise ValueError(f\"task {task_id} sandbox_dependencies must be a list\")\n        for dependency in dependencies:\n            if (\n                not isinstance(dependency, Mapping)\n                or set(dependency) != {\"source\", \"target\"}\n                or not all(isinstance(dependency[field], str) and dependency[field] for field in (\"source\", \"target\"))\n            ):\n                raise ValueError(\n                    f\"task {task_id} sandbox_dependencies entries require nonblank source and target strings\"\n                )\n        validate_oracle_declaration(task)\n        if expensive and not include_expensive:\n            skipped.append(task_id)\n        else:\n            selected.append(task)\n    if not selected:\n        raise ValueError(\"no tasks selected after expensive-task filtering\")\n    return selected, skipped\n\n\ndef _task_definition_binding(\n    task: dict[str, Any],\n    repo_identity: Path,\n    oracle_snapshot: TaskOracleSnapshot,\n    dependency_binding: Mapping[str, str],\n) -> dict[str, Any]:\n    return {\n        \"id\": task[\"id\"],\n        \"class\": task.get(\"class\", \"\"),\n        \"repo_identity\": str(repo_identity),\n        \"ref\": task.get(\"ref\", \"HEAD\"),\n        \"prompt_digest\": hashlib.sha256(task[\"prompt\"].encode()).hexdigest(),\n        \"setup_digest\": hashlib.sha256(str(task.get(\"setup\", \"\")).encode()).hexdigest(),\n        \"verify_digest\": hashlib.sha256(str(task[\"verify\"]).encode()).hexdigest(),\n        \"expensive\": bool(task.get(\"expensive\", False)),","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/runner_tasks.py#L55-L91","documentation":"Raised by select_tasks after the loop: every task was marked expensive and `include_expensive` is False, leaving the selected list empty (runner_tasks.py:72-73). The harness refuses to run zero tasks rather than silently producing an empty report.","triggerScenarios":"All tasks in the YAML carry `expensive: true` and the runner is invoked without `--include-expensive`; or the only task is expensive.","commonSituations":"Running the suite on a budget and forgetting the flag; a tasks file where every entry was marked expensive for CI gating.","solutions":["Re-run the harness with --include-expensive if you intend to run them.","Otherwise, demote some tasks by removing `expensive: true` (or setting it false).","Add at least one non-expensive task to the file."],"exampleFix":"# command: run all expensive tasks\n# before:  wfbench --tasks tasks.yaml\n# after:   wfbench --tasks tasks.yaml --include-expensive","handlingStrategy":"validation","validationCode":"tasks = doc.get(\"tasks\", [])\nall_expensive = tasks and all(t.get(\"expensive\", False) for t in tasks)\nif all_expensive:\n    print(\"warn: all tasks are expensive; pass --include-expensive to run them\")","typeGuard":"def has_runnable_task(tasks: list[dict], include_expensive: bool) -> bool:\n    return any(not t.get(\"expensive\", False) or include_expensive for t in tasks)","tryCatchPattern":null,"preventionTips":["Pass --include-expensive when the suite is intentionally all-expensive.","Keep at least one cheap smoke-test task unmarked expensive."],"tags":["workflow-bench","task-selection","filtering"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}