{"record":{"id":"d79467ac18774cf1","repo":"abhigyanpatwari/GitNexus","slug":"duplicate-transcript-artifact-path-normalized","errorCode":null,"errorMessage":"duplicate transcript artifact path: {normalized}","messagePattern":"duplicate transcript artifact path: (.+?)","errorType":"exception","errorClass":"SandboxError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/evolve.py","lineNumber":379,"sourceCode":"    artifacts_by_row: list[list[Any]] = []\n    seen_paths: set[str] = set()\n    total = 0\n    for artifacts_row in evidence:\n        artifacts = artifacts_row.get(\"transcript_artifacts\", [])\n        if not isinstance(artifacts, list):\n            raise SandboxError(\"transcript_artifacts must be a list\")\n        if len(artifacts) > MAX_TRANSCRIPT_ARTIFACTS_PER_ROW:\n            raise SandboxError(\n                f\"transcript_artifacts exceeds the per-row session limit of {MAX_TRANSCRIPT_ARTIFACTS_PER_ROW}\"\n            )\n        total += len(artifacts)\n        if total > MAX_TRANSCRIPT_ARTIFACTS:\n            raise SandboxError(f\"transcript_artifacts exceeds the global evidence limit of {MAX_TRANSCRIPT_ARTIFACTS}\")\n        for artifact in artifacts:\n            relative, _, _ = _transcript_artifact_metadata(artifact)\n            normalized = _normalized_transcript_artifact_path(relative)\n            if normalized in seen_paths:\n                raise SandboxError(f\"duplicate transcript artifact path: {normalized}\")\n            seen_paths.add(normalized)\n        artifacts_by_row.append(artifacts)\n    return artifacts_by_row\n\n\ndef _bound_transcript_artifact(root: Path, metadata: Any) -> str:\n    relative, expected_digest, expected_size = _transcript_artifact_metadata(metadata)\n\n    path = _results_artifact_path(root, relative, transcript=True)\n    try:\n        before = path.lstat()\n    except OSError as exc:\n        raise SandboxError(f\"transcript artifact is unavailable: {path}: {exc}\") from exc\n    if stat.S_ISLNK(before.st_mode) or not stat.S_ISREG(before.st_mode):\n        raise SandboxError(f\"transcript artifact must be a regular non-symlink file: {path}\")\n    if stat.S_IMODE(before.st_mode) & 0o077:\n        raise SandboxError(f\"transcript artifact must be owner-only: {path}\")\n    if before.st_size != expected_size:","sourceCodeStart":361,"sourceCodeEnd":397,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/evolve.py#L361-L397","documentation":"Raised by `_preflight_transcript_artifacts` when the same normalized transcript path (`transcripts/<name>`) appears in two artifact entries, whether within one row or across rows. Each transcript must be uniquely addressable.","triggerScenarios":"`proposer_evidence_entries` is given evidence whose `transcript_artifacts` contain two entries with an identical `path` after normalization (e.g. two rows both listing `transcripts/foo.jsonl`).","commonSituations":"Copy-pasting a row in results.jsonl, or a runner bug that reuses a session transcript path across distinct runs.","solutions":["Dedupe the transcript_artifacts so every `path` value is unique across the whole evidence set.","If the duplication came from a duplicated row, remove the duplicate row.","Regenerate results if the runner is emitting colliding transcript paths."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"seen, dups = set(), []\nfor r in evidence:\n    for a in r.get('transcript_artifacts', []):\n        p = a.get('path')\n        (dups if p in seen else seen.add(p))\nif dups:\n    raise ValueError(f'duplicate transcript paths: {dups}')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat each transcript path as a primary key across the whole results.jsonl."],"tags":["python","workflow-bench","evidence","dedupe","sandbox"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}