{"record":{"id":"be3f2edcc2a92959","repo":"abhigyanpatwari/GitNexus","slug":"unsupported-evolution-arm-exc-args-0","errorCode":null,"errorMessage":"unsupported evolution arm: {exc.args[0]}","messagePattern":"unsupported evolution arm: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/evolve.py","lineNumber":575,"sourceCode":"        raise ValueError(\"--arms must name exactly the minimal incumbent set for this overlay: \" + \" \".join(required))\n    return required\n\n\ndef generation_timeout_seconds(\n    *,\n    task_count: int,\n    runs: int,\n    session_timeout: int,\n    incumbent_arms: list[str],\n) -> int:\n    \"\"\"Budget every sequential bounded phase in the generated benchmark.\"\"\"\n\n    if task_count < 1 or runs < 1 or session_timeout < 1:\n        raise ValueError(\"task count, runs, and session timeout must be positive\")\n    try:\n        session_slots = sum(2 * ARM_SESSION_COUNTS[arm] for arm in incumbent_arms)\n    except KeyError as exc:\n        raise ValueError(f\"unsupported evolution arm: {exc.args[0]}\") from exc\n    paired_arm_cells = 2 * len(incumbent_arms)\n    workspace_snapshot_slots = sum(2 * ARM_WORKSPACE_SNAPSHOT_COUNTS[arm] for arm in incumbent_arms)\n    per_task_preparation = (\n        TASK_BINDING_GIT_PHASES * GIT_COMMAND_TIMEOUT_SECONDS\n        + 2 * TASK_SNAPSHOT_TIMEOUT_SECONDS\n        + WORKTREE_PREPARATION_TIMEOUT_SECONDS\n        + GRAPH_SOURCE_PREPARATION_TIMEOUT_SECONDS\n        + GRAPH_BUILD_TIMEOUT_SECONDS\n        + 2 * GRAPH_QUERY_TIMEOUT_SECONDS\n        + CLEANUP_TIMEOUT_SECONDS\n    )\n    per_task_run = session_slots * (session_timeout + SESSION_FINALIZATION_TIMEOUT_SECONDS) + paired_arm_cells * (\n        WORKTREE_PREPARATION_TIMEOUT_SECONDS\n        + ARM_ASSET_MATERIALIZATION_PHASES * TASK_SNAPSHOT_TIMEOUT_SECONDS\n        + SETUP_TIMEOUT_SECONDS\n        + 2 * session_timeout\n        + ARM_EVIDENCE_GIT_PHASES * GIT_COMMAND_TIMEOUT_SECONDS\n        + CLEANUP_TIMEOUT_SECONDS","sourceCodeStart":557,"sourceCodeEnd":593,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/evolve.py#L557-L593","documentation":"Raised by `generation_timeout_seconds` when an incumbent arm name is not a key in `ARM_SESSION_COUNTS` (valid keys: 'workflow', 'workflow_direct'). The budget sums per-arm session counts, so unknown arms are rejected.","triggerScenarios":"Calling `generation_timeout_seconds(..., incumbent_arms=['review'])` or any misspelled/unsupported arm like 'workflow-direct'. The 'review' arm exists in EVALUATED_ARM_SKILLS but is not an evolution incumbent.","commonSituations":"Passing 'review' (a read-only eval arm, not promotable) as an evolution arm, or a typo like 'workflow-dirct'.","solutions":["Use only incumbent arms from INCUMBENT_ARMS: 'workflow' and/or 'workflow_direct'.","Get arms via resolve_incumbent_arms() rather than typing them.","Drop 'review' from --arms; it is not an evolution arm."],"exampleFix":"# before: --arms review          # not an evolution incumbent\n# after:  --arms workflow workflow_direct","handlingStrategy":"validation","validationCode":"from workflow_bench.evolve import ARM_SESSION_COUNTS\nunknown = [a for a in incumbent_arms if a not in ARM_SESSION_COUNTS]\nif unknown:\n    raise ValueError(f'unsupported evolution arm(s): {unknown}; valid: {list(ARM_SESSION_COUNTS)}')","typeGuard":"def is_supported_arm(arm: str) -> bool:\n    return arm in {'workflow', 'workflow_direct'}","tryCatchPattern":null,"preventionTips":["Evolution incumbents are workflow / workflow_direct only; review is eval-only."],"tags":["python","workflow-bench","config","arms","validation"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}