vllm-project/vllm · error · RuntimeError

NIXL is unavailable.

Error message

NIXL is unavailable.

What it means

Error "NIXL is unavailable." thrown in vllm-project/vllm.

Source

Thrown at vllm/distributed/eplb/eplb_communicator.py:269

        """Create a NIXL-backed EPLB communicator.

        Args:
            cpu_group: CPU process group for metadata exchange.
            all_expert_weights: Expert weight tensors for all MoE layers.
            expert_buffer: Pre-allocated receive buffer tensors.
            defer_remote_setup: If True, postpone the collective
                all-gather of NIXL agent metadata until the first
                ``set_transfer_context`` call.  Required for elastic EP
                where ranks join asynchronously and cannot participate
                in collectives at construction time.
        """
        assert all_expert_weights, (
            "NixlEplbCommunicator requires non-empty all_expert_weights."
        )
        assert expert_buffer, "NixlEplbCommunicator requires non-empty expert_buffer."
        nixl_wrapper_cls = nixl_utils.NixlWrapper
        if nixl_wrapper_cls is None:
            raise RuntimeError("NIXL is unavailable.")

        self._cpu_group = cpu_group
        self._world_size = cpu_group.size()
        self._rank = cpu_group.rank()

        self._all_expert_weights = all_expert_weights
        self._expert_buffer = expert_buffer
        self._num_local_experts: int = all_expert_weights[0][0].shape[0]
        self._device = all_expert_weights[0][0].device

        for layer_tensors in all_expert_weights:
            for tensor in layer_tensors:
                assert is_weak_contiguous(tensor), (
                    "Expert weight tensors must be contiguous in memory"
                )
                assert tensor.device == self._device, (
                    "All local EPLB tensors are expected to be on the same "
                    f"device: expected={self._device}, got={tensor.device}"

View on GitHub (pinned to c794754062)

Solutions

  1. Install the NIXL package and ensure it is importable.
  2. Or select a different EPLB communicator backend that does not require NIXL.

When it happens

Trigger: Raised at vllm/distributed/eplb/eplb_communicator.py:269 when validation fails: NIXL is unavailable.. Typically triggered by an incompatible or incomplete vLLM configuration, an unsupported platform/backend combination, or a runtime resource/dependency that is missing.

Common situations: Commonly encountered at vllm/distributed/eplb/eplb_communicator.py:269 during vLLM startup/config validation or runtime setup when: (1) conflicting CLI flags or config fields are combined, (2) the current platform (CUDA/ROCm/CPU/XPU) or installed optional packages do not support the requested feature, or (3) a required value is absent or out of range. Resolve by correcting the configuration as described in the message, or by selecting a supported alternative.


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