vllm-project/vllm · error · ValueError

Adaptive verification only supported with DSpark

Error message

Adaptive verification only supported with DSpark

What it means

Raised at the end of SpeculativeConfig.__post_init__ when enable_adaptive_verification is true but method != 'dspark'. Adaptive verification (dynamically choosing how many draft tokens to verify) is only implemented for the DSpark worker, so enabling it with eagle/ngram/mtp etc. is rejected.

Source

Thrown at vllm/config/speculative.py:1142

                        self.draft_model_config.hf_config,
                    )
                )
                self.draft_model_config.max_model_len = (
                    SpeculativeConfig._maybe_override_draft_max_model_len(
                        self.max_model_len,
                        self.draft_model_config.max_model_len,
                        self.target_model_config.max_model_len,
                    )
                )

                self.draft_parallel_config = (
                    SpeculativeConfig.create_draft_parallel_config(
                        self.target_parallel_config, self.draft_tensor_parallel_size
                    )
                )

        if self.method != "dspark" and self.enable_adaptive_verification:
            raise ValueError("Adaptive verification only supported with DSpark")

        return self

    def _validate_suffix_decoding(self):
        if not has_arctic_inference():
            raise ImportError(
                "Arctic Inference is required for suffix decoding. "
                "Install via `pip install arctic-inference==0.1.1`."
            )
        if self.num_speculative_tokens is None:
            # Suffix decoding decides the actual number of speculative tokens
            # dynamically and treats num_speculative_tokens as a maximum limit.
            self.num_speculative_tokens = self.suffix_decoding_max_tree_depth
            logger.warning(
                "Defaulted num_speculative_tokens to %s for suffix decoding.",
                self.num_speculative_tokens,
            )
        # Validate values

View on GitHub (pinned to c794754062)

Solutions

  1. Set enable_adaptive_verification=False (or remove it) when using non-dspark methods
  2. Switch method to 'dspark' if adaptive verification is required

Example fix

# before
speculative_config={"method": "eagle", "model": "...", "enable_adaptive_verification": True}
# after
speculative_config={"method": "eagle", "model": "...", "enable_adaptive_verification": False}
Defensive patterns

Strategy: validation

Validate before calling

if spec_cfg.get("enable_adaptive_verification") and spec_cfg.get("method") != "dspark":
    spec_cfg["enable_adaptive_verification"] = False  # or fail fast in strict mode

Type guard

def adaptive_verification_allowed(method: str, enabled: bool) -> bool:
    return not enabled or method == "dspark"

Prevention

When it happens

Trigger: speculative_config={'method': 'eagle', ..., 'enable_adaptive_verification': True} or any non-dspark method with the flag on (also settable via CLI flag).

Common situations: Enabling a newly documented adaptive-verification flag on an existing EAGLE deployment; config templates that turn on all new boolean flags by default.

Related errors


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