{"record":{"id":"fb8bd1d6b3e12d59","repo":"sgl-project/sglang","slug":"the-following-requested-lora-adapters-are-not-load","errorCode":null,"errorMessage":"The following requested LoRA adapters are not loaded: {name}\\nLoaded adapters: {self._registry.keys()}.","messagePattern":"The following requested LoRA adapters are not loaded: (.+?)\\\\nLoaded adapters: (.+?)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/lora/lora_registry.py","lineNumber":138,"sourceCode":"                    f\"LoRA with name {lora_name} does not exist. Loaded LoRAs: {self._registry.keys()}\"\n                )\n            del self._registry[lora_name]\n\n        return lora_ref.lora_id\n\n    async def acquire(self, lora_name: Union[str, List[str]]) -> Union[str, List[str]]:\n        \"\"\"\n        Queries registry for LoRA IDs based on LoRA names and start tracking the usage of the corresponding LoRA adapters\n        by incrementing its counter.\n        \"\"\"\n\n        def _lookup(name: str) -> str:\n            if name is None:\n                return None\n\n            lora_ref = self._registry.get(name, None)\n            if lora_ref is None:\n                raise ValueError(\n                    f\"The following requested LoRA adapters are not loaded: {name}\\n\"\n                    f\"Loaded adapters: {self._registry.keys()}.\"\n                )\n            self._registry.move_to_end(name)\n            return lora_ref.lora_id\n\n        if isinstance(lora_name, str):\n            async with self._registry_lock.writer_lock:\n                lora_id = _lookup(lora_name)\n\n            await self._counters[lora_id].increment(notify_all=False)\n            return lora_id\n        elif isinstance(lora_name, list):\n            async with self._registry_lock.writer_lock:\n                lora_ids = [_lookup(name) for name in lora_name]\n\n            # Increment the counters only after all IDs are looked up.\n            await asyncio.gather(","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/lora/lora_registry.py#L120-L156","documentation":"Raised by LoRARegistry._lookup (used by acquire) when a request references a LoRA adapter name that is not in the registry. It happens per-request when routing a generate call with a lora_name that was never loaded or was unloaded.","triggerScenarios":"Sending a generation request whose lora_name parameter doesn't match any registry key (misspelled, unloaded, or loaded on a different server/worker); acquire() calls _lookup per name.","commonSituations":"Client requests referencing an adapter before loading it; adapter evicted/unloaded while requests in flight; multi-worker setups where only some ranks loaded the adapter.","solutions":["Load the adapter via /load_lora_adapter before sending requests that reference it","Fix the name in the request to exactly match a loaded adapter (see the Loaded adapters list in the message)","Add a pre-flight check of loaded adapters before dispatching traffic"],"exampleFix":"# before\nresp = client.generate(prompt, sampling_params, lora_name='my-adptr')\n# after\nclient.load_lora_adapter('my-adapter', path)\nresp = client.generate(prompt, sampling_params, lora_name='my-adapter')","handlingStrategy":"validation","validationCode":"loaded = set(registry._registry.keys())\nif request.lora_name not in loaded:\n    raise ValueError(f\"lora '{request.lora_name}' not loaded; available: {sorted(loaded)}\")","typeGuard":"def lora_is_loaded(registry, name: str) -> bool:\n    return name in registry._registry","tryCatchPattern":"try:\n    registry.acquire([name])\nexcept ValueError as e:\n    if 'not loaded' in str(e):\n        load_then_retry(name)\n    else:\n        raise","preventionTips":["Pre-flight check adapter availability before dispatching batch traffic","Load all adapters referenced by clients at startup via --lora-paths"],"tags":["lora","registry","not-found","request","sglang"],"backgroundTag":"resource-not-found","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}