sgl-project/sglang · error · ValueError

embed_override_token_id requires embed_overrides to be provi

Error message

embed_override_token_id requires embed_overrides to be provided

What it means

Mirror of the pairing check: the request supplied embed_override_token_id but no embed_overrides list. SGLang requires both or neither, since a token id alone has nothing to attach.

Source

Thrown at python/sglang/srt/entrypoints/openai/serving_embedding.py:165

            # Other types (should not happen but handle gracefully)
            prompt_kwargs = {"input_ids": prompt}

        # Resolve LoRA adapter from model parameter or explicit lora_path
        lora_path = self._resolve_lora_path(request.model, request.lora_path)

        # Validate pairing: both or neither must be provided
        if (
            request.embed_overrides is not None
            and request.embed_override_token_id is None
        ):
            raise ValueError(
                "embed_override_token_id is required when embed_overrides is provided"
            )
        if (
            request.embed_override_token_id is not None
            and request.embed_overrides is None
        ):
            raise ValueError(
                "embed_override_token_id requires embed_overrides to be provided"
            )

        # Convert float lists to tensors; position resolution is deferred
        # to the tokenizer manager (after tokenization for text inputs).
        embed_overrides = convert_embeds_to_tensors(request.embed_overrides)

        adapted_request = EmbeddingReqInput(
            **prompt_kwargs,
            rid=request.rid,
            priority=request.priority,
            routing_key=self.extract_routing_key(raw_request),
            dimensions=request.dimensions,
            lora_path=lora_path,
            embed_override_token_id=request.embed_override_token_id,
            embed_overrides=embed_overrides,
        )

View on GitHub (pinned to 0132848349)

Solutions

  1. Provide embed_overrides when setting embed_override_token_id
  2. Remove embed_override_token_id if overrides aren't needed

Example fix

# before
EmbeddingReqInput(input="x", embed_override_token_id=128000)
# after
EmbeddingReqInput(input="x")  # or add embed_overrides=[...]
Defensive patterns

Strategy: validation

Validate before calling

if req.embed_override_token_id is not None: assert req.embed_overrides is not None

Type guard

def overrides_paired(req) -> bool:
    return (req.embed_overrides is None) == (req.embed_override_token_id is None)

Prevention

When it happens

Trigger: POST /v1/embeddings with embed_override_token_id set and embed_overrides None.

Common situations: Leftover token id field after removing overrides; client defaults injecting the id unconditionally.

Understand the failure class

Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.

Related errors


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/957d132dc7387891. Report an issue: GitHub.