{"record":{"id":"e128682467d72c3c","repo":"vllm-project/vllm","slug":"no-precompiled-vllm-wheel-found-for-architecture","errorCode":null,"errorMessage":"No precompiled vllm wheel found for architecture {arch} from repo {repo_url}. All available wheels: {wheels}","messagePattern":"No precompiled vllm wheel found for architecture (.+?) from repo (.+?)\\. All available wheels: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"setup.py","lineNumber":978,"sourceCode":"    \"path\": \"../vllm-0.11.2.dev278%2Bgdbc3d9991-cp38-abi3-manylinux1_x86_64.whl\"\n    },\n    ...]\"\"\"\n            from urllib.parse import urljoin\n\n            for wheel in wheels:\n                # TODO: maybe check more compatibility later? (python_tag, abi_tag, etc)\n                if wheel.get(\"package_name\") == \"vllm\" and arch in wheel.get(\n                    \"platform_tag\", \"\"\n                ):\n                    print(f\"Found precompiled wheel metadata: {wheel}\")\n                    if \"path\" not in wheel:\n                        raise ValueError(f\"Wheel metadata missing path: {wheel}\")\n                    wheel_url = urljoin(repo_url, wheel[\"path\"])\n                    download_filename = wheel.get(\"filename\")\n                    print(f\"Using precompiled wheel URL: {wheel_url}\")\n                    break\n            else:\n                raise ValueError(\n                    f\"No precompiled vllm wheel found for architecture {arch} \"\n                    f\"from repo {repo_url}. All available wheels: {wheels}\"\n                )\n\n        return wheel_url, download_filename\n\n    @staticmethod\n    def extract_precompiled_and_patch_package(\n        wheel_url_or_path: str,\n        download_filename: str | None,\n        *,\n        extract_extensions: bool,\n        extract_rust_frontend: bool,\n    ) -> dict:\n        import tempfile\n        import zipfile\n\n        temp_dir = None","sourceCodeStart":960,"sourceCodeEnd":996,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/setup.py#L960-L996","documentation":"Thrown during a VLLM_USE_PRECOMPILED=1 build when setup.py scans the nightly wheel repo's metadata.json and finds no entry whose package_name is 'vllm' and whose platform_tag contains the host's platform.machine() (e.g. x86_64, aarch64). The build therefore cannot locate a precompiled wheel to extract compiled extensions from. The full candidate list is included in the message so you can see what the repo actually published.","triggerScenarios":"Running `VLLM_USE_PRECOMPILED=1 uv pip install -e .` on an architecture with no published nightly wheel (e.g. aarch64/s390x when only x86_64 manylinux wheels exist), or with VLLM_PRECOMPILED_WHEEL_COMMIT/VARIANT pointing at a commit/variant whose metadata.json has no wheel for your arch.","commonSituations":"Building vLLM from source on ARM servers or containers (e.g. Apple Silicon Docker, Graviton CI runners) with the precompiled shortcut; pinning a VLLM_PRECOMPILED_WHEEL_COMMIT whose nightly artifacts are incomplete; a nightly repo index that only published cu12 x86_64 wheels.","solutions":["Set VLLM_PRECOMPILED_WHEEL_LOCATION to a direct URL or local path of a wheel that matches your architecture (it short-circuits the repo lookup entirely).","Inspect the 'All available wheels' list in the message; if a wheel for another variant matches your arch, set VLLM_PRECOMPILED_WHEEL_VARIANT accordingly.","Point VLLM_PRECOMPILED_WHEEL_COMMIT at a commit known to have artifacts for your arch (check the nightly wheel repo index).","Drop VLLM_USE_PRECOMPILED and compile the CUDA/C++ extensions locally with `uv pip install -e . --torch-backend=auto`."],"exampleFix":"# before\nVLLM_USE_PRECOMPILED=1 uv pip install -e .\n# -> ValueError: No precompiled vllm wheel found for architecture aarch64 ...\n\n# after (point directly at an arch-matching wheel)\nexport VLLM_PRECOMPILED_WHEEL_LOCATION=https://wheels.vllm.ai/vllm-0.11.2.dev278-cp38-abi3-manylinux1_aarch64.whl\nVLLM_USE_PRECOMPILED=1 uv pip install -e .","handlingStrategy":"validation","validationCode":"# Before building: confirm a wheel exists for this arch in the nightly index\nimport json, platform, urllib.request\n\nmeta_url = \"https://wheels.vllm.ai/nightly/metadata.json\"  # or your repo's index\nwheels = json.load(urllib.request.urlopen(meta_url))\narch = platform.machine()\nok = any(w.get(\"package_name\") == \"vllm\" and arch in w.get(\"platform_tag\", \"\") for w in wheels)\nif not ok:\n    raise SystemExit(f\"No {arch} wheel published; set VLLM_PRECOMPILED_WHEEL_LOCATION or build from source\")","typeGuard":null,"tryCatchPattern":"try:\n    subprocess.run([\"uv\", \"pip\", \"install\", \"-e\", \".\"], env=build_env, check=True)\nexcept subprocess.CalledProcessError as e:\n    if \"No precompiled vllm wheel found\" in (e.stdout or \"\") + (e.stderr or \"\"):\n        # fall back to full source build without VLLM_USE_PRECOMPILED\n        build_env.pop(\"VLLM_USE_PRECOMPILED\", None)\n        subprocess.run([\"uv\", \"pip\", \"install\", \"-e\", \".\"], env=build_env, check=True)\n    else:\n        raise","preventionTips":["Pre-check the nightly wheel index for your platform.machine() before starting a VLLM_USE_PRECOMPILED build.","Pin VLLM_PRECOMPILED_WHEEL_LOCATION to a known-good wheel URL in CI instead of relying on repo discovery.","On non-x86_64 builders, default to full source compilation rather than the precompiled path."],"tags":["build","wheels","precompiled","architecture","setup-py"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}