{"record":{"id":"7996d576fc6aa351","repo":"abhigyanpatwari/GitNexus","slug":"proposer-output-destination-already-exists-overl","errorCode":null,"errorMessage":"proposer output destination already exists: {overlay_dir}","messagePattern":"proposer output destination already exists: (.+?)","errorType":"exception","errorClass":"SandboxError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/evolve.py","lineNumber":529,"sourceCode":"                    settings_json=sandbox.settings_json,\n                    strict_mcp_config=True,\n                    mcp_config_json='{\"mcpServers\":{}}',\n                    allowed_tools=PROPOSER_ALLOWED_TOOLS,\n                    disable_slash_commands=True,\n                    transcript_projects=sandbox.transcript_projects,\n                    transcript_cwd=Path(\"/workspace\"),\n                )\n            if not record[\"ok\"]:\n                return record\n            candidate_overlay_files(internal_overlay)\n            if (\n                not internal_proposal.is_file()\n                or internal_proposal.is_symlink()\n                or internal_proposal.stat().st_size > MAX_EVIDENCE_FILE_BYTES\n            ):\n                raise SandboxError(\"proposer did not produce one bounded regular proposal.md\")\n            if overlay_dir.exists():\n                raise SandboxError(f\"proposer output destination already exists: {overlay_dir}\")\n            shutil.copytree(internal_overlay, overlay_dir, copy_function=shutil.copyfile)\n            proposal_path.parent.mkdir(parents=True, exist_ok=True)\n            shutil.copyfile(internal_proposal, proposal_path)\n            proposal_path.chmod(0o600)\n            return record\n        except BaseException as exc:\n            primary = exc\n            raise\n        finally:\n            try:\n                runner.remove_clone(clone)\n            except OSError as cleanup:\n                if primary is None:\n                    raise\n                primary.add_note(f\"proposer clone cleanup also failed: {type(cleanup).__name__}: {cleanup}\")\n\n\n# Promotion application lives in promotion_apply; the public helpers are","sourceCodeStart":511,"sourceCodeEnd":547,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/evolve.py#L511-L547","documentation":"Raised by `run_proposer` when the destination `overlay_dir` already exists before copying the proposer's overlay out of the worktree. `shutil.copytree` requires an absent target, and a pre-existing dir would silently merge stale files.","triggerScenarios":"`run_proposer` is called with an `overlay_dir` (e.g. `gen-<n>/overlay`) that a prior, interrupted generation already created.","commonSituations":"Re-running evolve into the same out-root without cleaning it, or a previous generation crashed after creating the overlay dir but before completing.","solutions":["Point --out-root at a fresh directory, or delete the stale gen-<n>/overlay before retrying.","Ensure each generation starts from a clean out-root (the harness creates gen dirs but does not wipe them)."],"exampleFix":"// before: results/wfevolve-.../gen-0/overlay already exists\nrm -rf results/wfevolve-*/gen-0/overlay   # or use a new --out-root\n// after: run_proposer copies into a fresh overlay_dir","handlingStrategy":"validation","validationCode":"if overlay_dir.exists():\n    raise FileExistsError(f'refuse to merge into existing overlay: {overlay_dir}')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use a timestamped --out-root each run (the default does this).","Never resume into a populated out-root without removing stale gen overlays."],"tags":["python","workflow-bench","proposer","filesystem","state"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}