vllm-project/vllm · error · RuntimeError
Failed to find the repaired NIXL wheel.
Error message
Failed to find the repaired NIXL wheel.
What it means
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.
Source
Thrown at tools/install_nixl_from_source_ubuntu.py:221
# We tell auditwheel to ignore the plugin that mesonpy already handled.
auditwheel_command = [
"auditwheel",
"repair",
"--exclude",
"libplugin_UCX.so", # <-- Exclude because mesonpy already includes it
unrepaired_wheel,
f"--wheel-dir={WHEELS_CACHE_HOME}",
]
run_command(auditwheel_command, env=build_env)
# --- CLEANUP ---
# No more temporary files to remove, just the temp wheelhouse
run_command(["rm", "-rf", temp_wheel_dir])
# --- END CLEANUP ---
newly_built_wheel = find_nixl_wheel_in_cache(WHEELS_CACHE_HOME)
if not newly_built_wheel:
raise RuntimeError("Failed to find the repaired NIXL wheel.")
print(
f"--> Successfully built self-contained wheel: \
{os.path.basename(newly_built_wheel)}. Now installing...",
flush=True,
)
install_command = [
sys.executable,
"-m",
"pip",
"install",
"--no-deps", # w/o "no-deps", it will install cuda-torch
newly_built_wheel,
]
if args.force_reinstall:
install_command.insert(-1, "--force-reinstall")
run_command(install_command)View on GitHub (pinned to c794754062)
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).
Example fix
# before python tools/install_nixl_from_source_ubuntu.py # -> RuntimeError: Failed to find the repaired NIXL wheel. # after uv pip install auditwheel && sudo apt install -y patchelf python tools/install_nixl_from_source_ubuntu.py
Defensive patterns
Strategy: try-catch
Validate before calling
import shutil
missing = [t for t in ("auditwheel", "patchelf") if shutil.which(t) is None]
if missing:
raise SystemExit(f"Install {missing} before repairing NIXL wheels") Try / catch
try:
subprocess.run(["auditwheel", "repair", wheel, f"--wheel-dir={cache}"], check=True)
except subprocess.CalledProcessError as e:
raise SystemExit(f"auditwheel repair failed: {e}; check patchelf presence and unresolved libs") Prevention
- 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.
When it happens
Trigger: 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.
Common situations: Running the installer without `pip install auditwheel patchelf`; SELinux or read-only HOME preventing writes to the wheel cache; auditwheel rejecting UCX-linked libraries.
Related errors
- Failed to find the NIXL wheel after building it.
- Configuration error: {0}
- Endpoint not ready after {0}s: {1}
- Backend error: {0}
- IO error: {0}
AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14).
Data as JSON: /api/errors/fe5fc1a87c392e38.
Report an issue: GitHub.