{"record":{"id":"6f2c482712e3fad2","repo":"sgl-project/sglang","slug":"lora-adapter-first-adapter-was-requested-but","errorCode":null,"errorMessage":"LoRA adapter '{first_adapter}' was requested, but LoRA is not enabled. Please launch the server with --enable-lora flag and preload adapters using --lora-paths or /load_lora_adapter endpoint.","messagePattern":"LoRA adapter '(.+?)' was requested, but LoRA is not enabled\\. Please launch the server with --enable-lora flag and preload adapters using --lora-paths or /load_lora_adapter endpoint\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/managers/tokenizer_manager.py","lineNumber":3328,"sourceCode":"        else:\n            self.model_update_tmp.append(recv_obj)\n            if len(self.model_update_tmp) == self.model_update_expected_workers:\n                self.model_update_result.set_result(self.model_update_tmp)\n\n    async def _validate_and_resolve_lora(\n        self, obj: Union[GenerateReqInput, EmbeddingReqInput]\n    ) -> None:\n        if not obj.lora_path:\n            return\n\n        if not self.enable_lora:\n            first_adapter = (\n                obj.lora_path\n                if isinstance(obj.lora_path, str)\n                else next((a for a in obj.lora_path if a), None)\n            )\n\n            raise ValueError(\n                f\"LoRA adapter '{first_adapter}' was requested, but LoRA is not enabled. \"\n                \"Please launch the server with --enable-lora flag and preload adapters \"\n                \"using --lora-paths or /load_lora_adapter endpoint.\"\n            )\n\n        await self._resolve_lora_path(obj)\n\n    async def _resolve_lora_path(self, obj: Union[GenerateReqInput, EmbeddingReqInput]):\n        if isinstance(obj.lora_path, str):\n            unique_lora_paths = set([obj.lora_path])\n        else:\n            unique_lora_paths = set(obj.lora_path)\n\n        if (\n            get_lora().max_loaded_loras is not None\n            and len(unique_lora_paths) > get_lora().max_loaded_loras\n        ):\n            raise ValueError(","sourceCodeStart":3310,"sourceCodeEnd":3346,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/managers/tokenizer_manager.py#L3310-L3346","documentation":"Raised when a generate request carries a LoRA adapter (lora_path) but the server was launched without --enable-lora. The tokenizer manager validates LoRA usage before dispatching and rejects any request referencing an adapter while LoRA support is off.","triggerScenarios":"Calling generate/sampling APIs (HTTP /generate or Engine.generate) with lora_path set while the server lacks --enable-lora in server_args.","commonSituations":"Client code written for a LoRA-enabled deployment pointed at a plain server; enabling LoRA flag forgotten after adding lora_path to requests; default docker launch command reused without LoRA args.","solutions":["Restart the server with --enable-lora (and typically --max-lora-rank / --lora-paths as needed)","Preload the adapter via --lora-paths <name>=<path> or the /load_lora_adapter endpoint so lora_path resolves","If LoRA is not intended, remove lora_path from the client request"],"exampleFix":"# before\npython -m sglang.launch_server --model-path meta-llama/Llama-3-8B\n# client sends lora_path=\"my_adapter\"\n\n# after\npython -m sglang.launch_server --model-path meta-llama/Llama-3-8B \\\n  --enable-lora --lora-paths my_adapter=/path/to/adapter","handlingStrategy":"validation","validationCode":"from sglang.srt.server_args import ServerArgs\n# before sending: check server config if available\nassert server_args.enable_lora, \"LoRA not enabled on server\"\nif request.get(\"lora_path\"): assert server_args.enable_lora","typeGuard":"def uses_lora(req: dict) -> bool:\n    return bool(req.get(\"lora_path\"))","tryCatchPattern":"try:\n    out = engine.generate(prompt, lora_path=adapter)\nexcept ValueError as e:\n    if \"LoRA is not enabled\" in str(e):\n        raise RuntimeError(\"Restart server with --enable-lora\") from e\n    raise","preventionTips":["Launch LoRA-serving deployments with --enable-lora in the canonical start script","Add a startup health probe asserting /get_server_info shows lora_enabled when clients send lora_path","Gate client-side lora_path on a config flag tied to the deployment"],"tags":["lora","adapter","server-args","configuration"],"backgroundTag":"feature-not-enabled","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}