{"record":{"id":"079d69db583eb525","repo":"vllm-project/vllm","slug":"elastic-ep-requires-torch-nccl-pynccl-or-ni","errorCode":null,"errorMessage":"Elastic EP requires 'torch_nccl', 'pynccl', or 'nixl' EPLB communicator (got '{backend}').","messagePattern":"Elastic EP requires 'torch_nccl', 'pynccl', or 'nixl' EPLB communicator \\(got '(.+?)'\\)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vllm/distributed/eplb/eplb_communicator.py","lineNumber":734,"sourceCode":"            getattr(device_comm, \"pynccl_comm\", None)\n            if device_comm is not None\n            else None\n        )\n        if pynccl_comm is None or pynccl_comm.disabled or not pynccl_comm.available:\n            raise RuntimeError(\"EPLB communicator 'pynccl' requested but unavailable.\")\n        try:\n            return PyNcclEplbCommunicator(pynccl_comm=pynccl_comm)\n        except Exception as exc:\n            raise RuntimeError(\n                f\"Failed to initialize PyNcclEplbCommunicator ({exc}).\"\n            ) from exc\n\n    is_stateless = isinstance(group_coordinator, StatelessGroupCoordinator)\n    if is_stateless:\n        if backend == \"nixl\":\n            pass  # handled below with defer_remote_setup=True\n        elif backend not in (\"torch_nccl\", \"pynccl\"):\n            raise ValueError(\n                f\"Elastic EP requires 'torch_nccl', 'pynccl', or 'nixl' \"\n                f\"EPLB communicator (got '{backend}').\"\n            )\n        else:\n            if backend == \"torch_nccl\":\n                logger.warning(\n                    \"Stateless elastic EP requires PyNCCL backend. \"\n                    \"Forcing EPLB communicator to 'pynccl'.\"\n                )\n                backend = \"pynccl\"\n            return _create_pynccl()\n\n    if backend == \"nixl\":\n        if not has_nixl():\n            raise RuntimeError(\n                \"EPLB communicator 'nixl' requested but NIXL is unavailable.\"\n            )\n        if not (current_platform.is_cuda_alike() and tensor_device_type != \"cpu\"):","sourceCodeStart":716,"sourceCodeEnd":752,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/distributed/eplb/eplb_communicator.py#L716-L752","documentation":"Error \"Elastic EP requires 'torch_nccl', 'pynccl', or 'nixl' EPLB communicator (got '{backend}').\" thrown in vllm-project/vllm.","triggerScenarios":"Raised at vllm/distributed/eplb/eplb_communicator.py:734 when validation fails: Elastic EP requires 'torch_nccl', 'pynccl', or 'nixl' EPLB communicator. Typically triggered by an incompatible or incomplete vLLM configuration, an unsupported platform/backend combination, or a runtime resource/dependency that is missing.","commonSituations":"Commonly encountered at vllm/distributed/eplb/eplb_communicator.py:734 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.","solutions":["Set the EPLB communicator backend to 'torch_nccl', 'pynccl', or 'nixl' when using Elastic EP."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}