{"record":{"id":"5ea9f2fa2b4b656e","repo":"sgl-project/sglang","slug":"item-embed-overrides-length-len-item-embed-overr","errorCode":null,"errorMessage":"item_embed_overrides length ({len(item_embed_overrides)}) must match items length ({len(items)}).","messagePattern":"item_embed_overrides length \\((.+?)\\) must match items length \\((.+?)\\)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/managers/tokenizer_manager_score_mixin.py","lineNumber":499,"sourceCode":"                \"label_token_ids is required for generation (CausalLM) models.\"\n            )\n        if items is None:\n            raise ValueError(\"items must be provided\")\n        if not items:\n            return ScoreResult(scores=[], prompt_tokens=0)\n\n        has_embeds = (\n            query_embed_overrides is not None or item_embed_overrides is not None\n        )\n        if has_embeds and embed_override_token_id is None:\n            raise ValueError(\n                \"embed_override_token_id is required when query_embed_overrides \"\n                \"or item_embed_overrides are supplied.\"\n            )\n        if item_first and has_embeds:\n            raise ValueError(\"item_first is not supported when embeddings are supplied\")\n        if item_embed_overrides is not None and len(item_embed_overrides) != len(items):\n            raise ValueError(\n                f\"item_embed_overrides length ({len(item_embed_overrides)}) \"\n                f\"must match items length ({len(items)}).\"\n            )\n        if self.tokenizer is not None and label_token_ids is not None:\n            vocab_size = self.tokenizer.vocab_size\n            for token_id in label_token_ids:\n                if token_id >= vocab_size:\n                    raise ValueError(\n                        f\"Token ID {token_id} is out of vocabulary (vocab size: {vocab_size})\"\n                    )\n\n        # Check if multi-item scoring is enabled\n        use_multi_item_scoring = self.server_args.enable_mis\n\n        input_ids = None\n        text_prompts = None\n        positional_embed_overrides = None\n        delimiter_indices = None","sourceCodeStart":481,"sourceCodeEnd":517,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/managers/tokenizer_manager_score_mixin.py#L481-L517","documentation":"Raised by score_request when item_embed_overrides is provided but its length differs from the number of items. Each item needs exactly one embedding override vector, so the lists must be the same length.","triggerScenarios":"Calling score/async_score/score_prompts with len(item_embed_overrides) != len(items), e.g. 4 items but only 3 embeddings, or embeddings batched per-query instead of per-item.","commonSituations":"Batched reranking where embeddings were computed per query instead of flattened per (query, item) pair; off-by-one or filtered items list without filtering the matching embeddings; reusing cached embeddings from a different item set.","solutions":["Regenerate item_embed_overrides so there is one embedding per element of items","If items are flattened pairs, flatten embeddings with the same order/comprehension","Log len(items) and len(item_embed_overrides) before the call to confirm alignment"],"exampleFix":"# before\nitem_embs = [emb_model.encode(q) for q in queries]  # wrong axis\nawait engine.async_score(queries, items, item_embed_overrides=item_embs)\n# after\nitem_embs = [emb_model.encode(it) for it in items]\nawait engine.async_score(queries, items, item_embed_overrides=item_embs)","handlingStrategy":"validation","validationCode":"assert item_embed_overrides is None or len(item_embed_overrides) == len(items), (\n    f\"{len(item_embed_overrides)=} != {len(items)=}\")","typeGuard":"def overrides_match(items: list, embs: list | None) -> bool:\n    return embs is None or len(embs) == len(items)","tryCatchPattern":null,"preventionTips":["Generate embeddings with the same iteration that builds items","Add a length assert in test fixtures for reranking data"],"tags":["sglang","scoring","length-mismatch","embedding-overrides"],"backgroundTag":"list-length-mismatch","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}