{"record":{"id":"d9bc6c2214927645","repo":"sgl-project/sglang","slug":"item-first-is-not-supported-when-embeddings-are-su","errorCode":null,"errorMessage":"item_first is not supported when embeddings are supplied","messagePattern":"item_first is not supported when embeddings are supplied","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/managers/tokenizer_manager_score_mixin.py","lineNumber":497,"sourceCode":"        if is_generation and label_token_ids is None:\n            raise ValueError(\n                \"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","sourceCodeStart":479,"sourceCodeEnd":515,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/managers/tokenizer_manager_score_mixin.py#L479-L515","documentation":"Raised by TokenizerManager.score_request when item_first=True is combined with query_embed_overrides or item_embed_overrides. Embedding-override scoring constructs cross-attention inputs in a fixed query-then-item order, so the item_first reordering mode is mutually exclusive with embedding inputs.","triggerScenarios":"Calling engine.score(...) / async_score / score_prompts with item_first=True while also passing item_embed_overrides or query_embed_overrides (i.e., has_embeds is True).","commonSituations":"Porting a text-only re-ranking pipeline that used item_first=True to an embedding-based reranker API without clearing the flag; passing empty-but-non-None override lists also triggers it because has_embeds treats any non-None overrides as embeddings.","solutions":["Set item_first=False (or omit it) when passing query_embed_overrides/item_embed_overrides","If you must reorder items first, tokenize them to text prompts and drop the embed overrides","Pass None instead of empty lists for override arguments you don't use"],"exampleFix":"# before\nawait engine.async_score(queries, items, item_first=True, item_embed_overrides=embs)\n# after\nawait engine.async_score(queries, items, item_first=False, item_embed_overrides=embs)","handlingStrategy":"validation","validationCode":"has_embeds = query_embed_overrides is not None or item_embed_overrides is not None\nif item_first and has_embeds:\n    raise ValueError(\"item_first cannot be combined with embedding overrides\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Default item_first to False in wrappers that accept embed overrides","Pass None rather than empty lists for unused override parameters"],"tags":["sglang","scoring","embedding-overrides","argument-validation"],"backgroundTag":"invalid-argument-combination","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}