{"record":{"id":"3ec1c942be02d72e","repo":"sgl-project/sglang","slug":"dit-target-weight-name-target-name-already-exist","errorCode":null,"errorMessage":"Dit target weight name {target_name} already exists in lora_adapters[{lora_nickname}]","messagePattern":"Dit target weight name (.+?) already exists in lora_adapters\\[(.+?)\\]","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/lora/pipeline.py","lineNumber":914,"sourceCode":"            if merge_index is not None:\n                to_merge_params[target_name][merge_index] = weight\n                # A/B of one fused layer must be laid out together (GQA B cannot stack).\n                if target_name.endswith((\".lora_A\", \".lora_B\")):\n                    continue\n                if len(to_merge_params[target_name]) == num_params_to_merge:\n                    sorted_tensors = [\n                        to_merge_params[target_name][i]\n                        for i in range(num_params_to_merge)\n                    ]\n                    # Use stack instead of cat because it needs to be compatible with TP.\n                    weight = torch.stack(sorted_tensors, dim=0)\n                    del to_merge_params[target_name]\n                else:\n                    continue\n\n            weight = _swap_peft_swiglu_fc1_lora_b(name, target_name, weight)\n            if target_name in self.lora_adapters[lora_nickname]:\n                raise ValueError(\n                    f\"Dit target weight name {target_name} already exists in lora_adapters[{lora_nickname}]\"\n                )\n            self.lora_adapters[lora_nickname][target_name] = weight.to(self.device)\n\n        _store_fused_lora_groups(\n            self.lora_adapters[lora_nickname],\n            to_merge_params,\n            adapter_lora_alpha,\n            self.device,\n        )\n        transformer = self.modules[\"transformer\"]\n        if isinstance(transformer, BaseDiT):\n            self.lora_adapters[lora_nickname] = transformer.prepare_lora_adapter(\n                self.lora_adapters[lora_nickname]\n            )\n\n        self.loaded_adapter_paths[lora_nickname] = lora_path\n        self.loaded_adapter_alphas[lora_nickname] = adapter_lora_alpha","sourceCodeStart":896,"sourceCodeEnd":932,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/lora/pipeline.py#L896-L932","documentation":"load_lora_adapter stores LoRA B weights keyed by target parameter name inside lora_adapters[nickname]; if two source entries in the checkpoint map to the same target_name (after SwiGLU fc1 name swapping), the second insert is rejected to avoid silently overwriting weights.","triggerScenarios":"A LoRA checkpoint containing duplicate/aliased weight names, e.g. both the original and _swap_peft_swiglu_fc1_lora_b-renamed variants of the same fc1 lora_b tensor; loading such an adapter via set_lora.","commonSituations":"Exporting a PEFT adapter for a SwiGLU model that duplicates gate/up names; converting checkpoints between naming conventions that produce collisions; corrupted or re-saved adapters.","solutions":["Inspect the checkpoint keys (safetensors index) and remove the duplicate entry","Re-export the LoRA adapter from the original training framework","If this is a pipeline bug for your model arch, report it with the checkpoint key list"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"from safetensors import safe_open\nwith safe_open(path, framework='pt') as f:\n    keys = list(f.keys())\nassert len(keys) == len(set(keys)) and len(keys) <= expected_param_count","typeGuard":null,"tryCatchPattern":"try:\n    pipeline.set_lora(...)\nexcept ValueError as e:\n    if 'already exists in lora_adapters' in str(e): log_checkpoint_issue(path)","preventionTips":["Only load adapters exported from the supported PEFT/training flow","Keep a registry of known-good checkpoint hashes"],"tags":["lora","checkpoint","duplicate-key"],"backgroundTag":"duplicate-checkpoint-weights","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}