{"record":{"id":"fe5fc1a87c392e38","repo":"vllm-project/vllm","slug":"failed-to-find-the-repaired-nixl-wheel","errorCode":null,"errorMessage":"Failed to find the repaired NIXL wheel.","messagePattern":"Failed to find the repaired NIXL wheel\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"tools/install_nixl_from_source_ubuntu.py","lineNumber":221,"sourceCode":"    # We tell auditwheel to ignore the plugin that mesonpy already handled.\n    auditwheel_command = [\n        \"auditwheel\",\n        \"repair\",\n        \"--exclude\",\n        \"libplugin_UCX.so\",  # <-- Exclude because mesonpy already includes it\n        unrepaired_wheel,\n        f\"--wheel-dir={WHEELS_CACHE_HOME}\",\n    ]\n    run_command(auditwheel_command, env=build_env)\n\n    # --- CLEANUP ---\n    # No more temporary files to remove, just the temp wheelhouse\n    run_command([\"rm\", \"-rf\", temp_wheel_dir])\n    # --- END CLEANUP ---\n\n    newly_built_wheel = find_nixl_wheel_in_cache(WHEELS_CACHE_HOME)\n    if not newly_built_wheel:\n        raise RuntimeError(\"Failed to find the repaired NIXL wheel.\")\n\n    print(\n        f\"--> Successfully built self-contained wheel: \\\n            {os.path.basename(newly_built_wheel)}. Now installing...\",\n        flush=True,\n    )\n    install_command = [\n        sys.executable,\n        \"-m\",\n        \"pip\",\n        \"install\",\n        \"--no-deps\",  # w/o \"no-deps\", it will install cuda-torch\n        newly_built_wheel,\n    ]\n    if args.force_reinstall:\n        install_command.insert(-1, \"--force-reinstall\")\n\n    run_command(install_command)","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/tools/install_nixl_from_source_ubuntu.py#L203-L239","documentation":"After `auditwheel repair --wheel-dir=WHEELS_CACHE_HOME` runs on the unrepaired NIXL wheel, the script searches WHEELS_CACHE_HOME for the repaired nixl wheel. This RuntimeError means the repaired wheel could not be found there — auditwheel failed, was not installed, or did not emit a matching artifact.","triggerScenarios":"auditwheel not on PATH or erroring during `repair` (missing patchelf, unresolved external libs outside its policy) so nothing lands in WHEELS_CACHE_HOME; an auditwheel version that renames the output (e.g. manylinux tag differs) so the pattern match fails; a stale/permission-restricted cache directory.","commonSituations":"Running the installer without `pip install auditwheel patchelf`; SELinux or read-only HOME preventing writes to the wheel cache; auditwheel rejecting UCX-linked libraries.","solutions":["Install repair deps: `uv pip install auditwheel` and `apt install -y patchelf`, then re-run.","Inspect the auditwheel output directly above the traceback — fix the reported unresolved library or policy error.","Ensure WHEELS_CACHE_HOME is writable and clear stale entries, then re-run the installer (it caches, so leftover bad artifacts can confuse the lookup)."],"exampleFix":"# before\npython tools/install_nixl_from_source_ubuntu.py\n# -> RuntimeError: Failed to find the repaired NIXL wheel.\n\n# after\nuv pip install auditwheel && sudo apt install -y patchelf\npython tools/install_nixl_from_source_ubuntu.py","handlingStrategy":"try-catch","validationCode":"import shutil\nmissing = [t for t in (\"auditwheel\", \"patchelf\") if shutil.which(t) is None]\nif missing:\n    raise SystemExit(f\"Install {missing} before repairing NIXL wheels\")","typeGuard":null,"tryCatchPattern":"try:\n    subprocess.run([\"auditwheel\", \"repair\", wheel, f\"--wheel-dir={cache}\"], check=True)\nexcept subprocess.CalledProcessError as e:\n    raise SystemExit(f\"auditwheel repair failed: {e}; check patchelf presence and unresolved libs\")","preventionTips":["Pre-install auditwheel and patchelf on any host that builds NIXL wheels.","Keep the wheel cache directory clean between runs so lookups find fresh artifacts.","Treat the first failure's full log as the source of truth; never blind-retry the installer."],"tags":["nixl","auditwheel","build","ubuntu","tooling"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}