vllm-project/vllm · error · ValueError

Wheel metadata missing path: {wheel}

Error message

Wheel metadata missing path: {wheel}

What it means

Raised in setup.py's precompiled-wheel metadata handling (line 864): iterating a fetched wheels-metadata list, an entry matched (`package_name == "vllm"` and platform tag contains arch) but has no `path` key, so the wheel URL cannot be constructed. Distinct from 'wheel not found' — the metadata entry exists but is malformed.

Source

Thrown at setup.py:864

                precompiled_wheel_utils.warn_if_rocm_torch_version_mismatch(
                    wheels, repo_url, arch
                )
            except Exception as e:
                logger.warning(
                    "Failed to fetch ROCm wheel metadata for variant %s: %s",
                    variant,
                    e,
                )
        if wheels is not None and repo_url is not None:
            from urllib.parse import urljoin

            for wheel in wheels:
                if wheel.get("package_name") == "vllm" and arch in wheel.get(
                    "platform_tag", ""
                ):
                    print(f"Found precompiled wheel metadata: {wheel}")
                    if "path" not in wheel:
                        raise ValueError(f"Wheel metadata missing path: {wheel}")
                    wheel_url = urljoin(f"{repo_url}vllm/", wheel["path"])
                    download_filename = wheel.get("filename")
                    print(f"Using precompiled wheel URL: {wheel_url}")
                    return wheel_url, download_filename
            logger.warning(
                "No precompiled vllm wheel found for architecture %s "
                "from repo %s. All available wheels: %s",
                arch,
                repo_url,
                wheels,
            )

        # Fall back to AMD's PyPI index
        index_url = os.getenv(
            "VLLM_ROCM_WHEEL_INDEX", "https://pypi.amd.com/vllm-rocm/simple"
        )
        print(f"Fetching ROCm precompiled wheel from {index_url}")
        wheel_url = precompiled_wheel_utils.fetch_wheel_from_pypi_index(index_url)

View on GitHub (pinned to c794754062)

Solutions

  1. Fix the metadata source: every matched vLLM wheel entry needs a `path` (relative wheel location joined onto repo_url)
  2. Print the offending entry (the error embeds it) and add the missing path field
  3. If you don't control the metadata, bypass the precompiled-wheel flow and install normally

Example fix

# before
{"package_name": "vllm", "platform_tag": "manylinux1_x86_64", "filename": "vllm-...whl"}

# after
{"package_name": "vllm", "platform_tag": "manylinux1_x86_64", "filename": "vllm-...whl", "path": "vllm/vllm-...whl"}
Defensive patterns

Strategy: validation

Validate before calling

for wheel in wheels:
    if wheel.get("package_name") == "vllm" and arch in wheel.get("platform_tag", ""):
        assert "path" in wheel, f"wheel metadata entry missing 'path': {wheel}"

Try / catch

try:
    wheel_url = urljoin(f"{repo_url}vllm/", wheel["path"])
except KeyError:
    raise ValueError(f"Wheel metadata missing path: {wheel}") from None

Prevention

When it happens

Trigger: Installing with a precompiled-wheels metadata JSON/repo override whose vLLM entry for your arch omits `path` (e.g. only has filename/package_name/platform_tag).

Common situations: Hand-edited or externally generated wheel metadata lists; a metadata producer version that renamed `path` to something else; internal artifact stores whose export drops relative paths.

Related errors


AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14). Data as JSON: /api/errors/a170afdac75c5b63. Report an issue: GitHub.