{"record":{"id":"da531263a024b21b","repo":"zed-industries/zed","slug":"failed-to-install-or-start-judge-proxy-exit-resu","errorCode":null,"errorMessage":"Failed to install or start judge proxy (exit {result.return_code}){detail}","messagePattern":"Failed to install or start judge proxy \\(exit (.+?)\\)(.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"crates/eval_cli/zed_eval/verifier.py","lineNumber":57,"sourceCode":"                \"ensure-judge-proxy\\n\"\n                \"python3 - <<'ZED_PROXY_CHECK_EOF'\\n\"\n                \"import os, socket\\n\"\n                \"port = int(os.environ.get('ZED_JUDGE_PROXY_PORT', '8089'))\\n\"\n                \"with socket.create_connection(('127.0.0.1', port), timeout=5):\\n\"\n                \"    pass\\n\"\n                \"ZED_PROXY_CHECK_EOF\\n\"\n                \"if [ -f /tmp/zed-judge-proxy.log ]; then \"\n                \"tail -2 /tmp/zed-judge-proxy.log; fi\\n\"\n            ),\n            user=\"root\",\n            env=env,\n        )\n        if result.return_code != 0:\n            output = \"\\n\".join(\n                part for part in (result.stdout, result.stderr) if part\n            ).strip()\n            detail = f\": {output}\" if output else \"\"\n            raise RuntimeError(\n                f\"Failed to install or start judge proxy (exit {result.return_code}){detail}\"\n            )\n","sourceCodeStart":39,"sourceCodeEnd":60,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/eval_cli/zed_eval/verifier.py#L39-L60","documentation":"verifier.py installs and starts the judge proxy inside the target container by exec'ing a root shell script (which even tails /tmp/zed-judge-proxy.log on failure). If that exec returns a non-zero exit code, this RuntimeError is raised with the combined stdout/stderr plus the proxy log tail as detail — the install or the startup failed inside the container.","triggerScenarios":"The container has no egress so the install step's downloads fail; the proxy script or binary is missing from the mounted volume; python3 absent or wrong architecture in the container; the proxy starts then immediately exits, leaving a log tail in the message.","commonSituations":"Sandboxed eval containers with blocked networking; volume mounts misconfigured so the proxy payload path is empty; base image changes dropping python3; disk-full in /tmp.","solutions":["Read the detail suffix — it includes the script output and the last lines of /tmp/zed-judge-proxy.log","Exec into the container and re-run the install script manually to reproduce","Verify egress rules allow the install step, or pre-bake the proxy into the image","Confirm the volume carrying the proxy is mounted at the path the script expects"],"exampleFix":"# before\n# RuntimeError: Failed to install or start judge proxy (exit 1): ...\n\n# after — reproduce inside the container\npier exec <job> --user-root -- /bin/sh -c 'sh -x /path/to/install-proxy.sh; tail -20 /tmp/zed-judge-proxy.log'","handlingStrategy":"try-catch","validationCode":"result = container.exec([\"python3\", \"--version\"], user=\"root\")\nif result.return_code != 0:\n    raise SystemExit(\"container lacks python3; pre-bake it into the image or fix the base image\")","typeGuard":null,"tryCatchPattern":"try:\n    start_judge_proxy(container, env)\nexcept RuntimeError as err:\n    if \"judge proxy\" in str(err):\n        log_tail = container.exec([\"tail\", \"-20\", \"/tmp/zed-judge-proxy.log\"], user=\"root\").stdout\n        raise RuntimeError(f\"{err}\\nproxy log:\\n{log_tail}\") from err\n    raise","preventionTips":["Pre-bake the judge proxy into the container image instead of installing at runtime","Pin the volume mount path that carries the proxy payload","Keep an egress allowlist that covers the install step's hosts"],"tags":["container","exec","judge-proxy","installation","zed-eval"],"backgroundTag":"container-execution-failed","analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}