vllm-project/vllm · error · ValueError
Model Runner V2 does not yet support: {', '.join(unsupported
Error message
Model Runner V2 does not yet support: {', '.join(unsupported)} What it means
The V2 model runner has a curated list of not-yet-supported features (built by `_get_v2_model_runner_unsupported_features`, e.g. prompt embeds, KV sharing fast prefill, and others). If any of them is enabled, `_validate_v2_model_runner` raises with the comma-separated list so the user knows exactly what to disable.
Source
Thrown at vllm/config/vllm.py:2486
unsupported.append("custom logits processors")
if model_config is not None and model_config.enable_prompt_embeds:
unsupported.append("prompt embeds")
if self.cache_config.kv_sharing_fast_prefill:
# Will be added by https://github.com/vllm-project/vllm/pull/35045
unsupported.append("KV sharing fast prefill")
return unsupported
def _validate_v2_model_runner(self) -> None:
"""Check for features not yet supported by the V2 model runner."""
if not HAS_TRITON:
raise ValueError("Model Runner V2 requires Triton.")
unsupported = self._get_v2_model_runner_unsupported_features()
if unsupported:
raise ValueError(
f"Model Runner V2 does not yet support: {', '.join(unsupported)}"
)
def validate_block_size(self) -> None:
"""Validate block_size against DCP and mamba constraints.
Called after Platform.update_block_size_for_backend() has
finalised block_size.
"""
block_size = self.cache_config.block_size
# DCP interleave-size compatibility
if self.parallel_config.decode_context_parallel_size > 1:
if self.parallel_config.dcp_kv_cache_interleave_size > 1 and (
self.parallel_config.cp_kv_cache_interleave_size
!= self.parallel_config.dcp_kv_cache_interleave_size
):
self.parallel_config.cp_kv_cache_interleave_size = (View on GitHub (pinned to c794754062)
Solutions
- Disable each feature named in the error message (e.g. drop `--kv-sharing-fast-prefill`, unset prompt embeds).
- Or switch back to the legacy runner with `VLLM_USE_V2_MODEL_RUNNER=0` until the feature is ported.
- Check `_get_v2_model_runner_unsupported_features()` for your installed version to plan flag combinations.
Example fix
# before (error: 'Model Runner V2 does not yet support: KV sharing fast prefill') VLLM_USE_V2_MODEL_RUNNER=1 vllm serve model --kv-sharing-fast-prefill # after VLLM_USE_V2_MODEL_RUNNER=1 vllm serve model
Defensive patterns
Strategy: validation
Validate before calling
cfg = VllmConfig._get_v2_model_runner_unsupported_features # introspect if accessible
# practical guard: mirror the known list
UNSUPPORTED = []
if model_config.enable_prompt_embeds: UNSUPPORTED.append("prompt embeds")
if cache_config.kv_sharing_fast_prefill: UNSUPPORTED.append("KV sharing fast prefill")
if use_v2 and UNSUPPORTED: use_v2 = False Try / catch
try:
LLM(**args)
except ValueError as e:
if "Model Runner V2 does not yet support" in str(e):
os.environ["VLLM_USE_V2_MODEL_RUNNER"] = "0"
else:
raise Prevention
- Check the unsupported-features list after each vLLM upgrade
- Keep V1 fallback switch documented when experimenting with V2 runner
When it happens
Trigger: Running with the V2 model runner while any feature in the unsupported list is active — e.g. `enable_prompt_embeds=True` or `--kv-sharing-fast-prefill`.
Common situations: Opting into the newer V2 runner (or a default flip after upgrade) while a launch config still enables a feature the V1 runner supported; version upgrades that change the unsupported list.
Related errors
- DeepSeek V4 does not support PIECEWISE CUDA graphs with Mode
- sampling distribution replay requires Model Runner V2
- Stochastic rounding for Mamba cache requires the SSM cache t
- Currently, async scheduling is only supported with EAGLE/MTP
- Async scheduling is not compatible with disable_padded_draft
AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14).
Data as JSON: /api/errors/da64bc2cebb36ecc.
Report an issue: GitHub.