{"record":{"id":"8888b2fec7ef332d","repo":"sgl-project/sglang","slug":"failed-to-import-sglang-private-private-model-load","errorCode":null,"errorMessage":"Failed to import sglang.private.private_model_loader","messagePattern":"Failed to import sglang\\.private\\.private_model_loader","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/model_loader/loader.py","lineNumber":4351,"sourceCode":"            )\n            model_config.quantization = \"fp8\"\n\n        return QuantizedRLModelLoader(load_config)\n\n    if load_config.load_format == LoadFormat.REMOTE:\n        return RemoteModelLoader(load_config)\n\n    if load_config.load_format == LoadFormat.REMOTE_INSTANCE:\n        return RemoteInstanceModelLoader(load_config)\n\n    if load_config.load_format == LoadFormat.PRIVATE:\n        import importlib\n\n        try:\n            module = importlib.import_module(\"sglang.private.private_model_loader\")\n            return module.PrivateModelLoader(load_config)\n        except ImportError:\n            raise ValueError(\"Failed to import sglang.private.private_model_loader\")\n\n    if load_config.load_format == LoadFormat.RUNAI_STREAMER:\n        return RunaiModelStreamerLoader(load_config)\n\n    if load_config.load_format == LoadFormat.IPC_CACHE:\n        from sglang.srt.weight_cache.ipc_loader import IpcModelLoader\n        from sglang.srt.weight_cache.protocol import (\n            compute_global_rank,\n            get_socket_path,\n        )\n\n        if load_config.weight_cache_socket:\n            socket_path = load_config.weight_cache_socket\n        else:\n            from sglang.srt.runtime_context import get_parallel\n\n            ps = get_parallel()\n            global_rank = compute_global_rank(ps.tp_size, ps.pp_rank, ps.tp_rank)","sourceCodeStart":4333,"sourceCodeEnd":4369,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/model_loader/loader.py#L4333-L4369","documentation":"get_model_loader dispatches on load_config.load_format; for the PRIVATE format it importlib-imports sglang.private.private_model_loader and instantiates PrivateModelLoader. That module only exists in NVIDIA's internal build, so open-source installs raise ValueError on import failure.","triggerScenarios":"Setting --load-format private (or a config resolving to LoadFormat.PRIVATE) in an open-source sglang install where sglang.private.private_model_loader doesn't exist.","commonSituations":"Copy-pasted launch command meant for an internal deployment; serialized server_args from a private fork replayed on OSS sglang; typo'd load format string silently matched to 'private'.","solutions":["Remove --load-format private / set the load format to a public one (default, auto, modelopt, runai_streamer, ...)","If you believe you need it, use the NVIDIA internal sglang build that ships sglang.private","Print available formats: python -c \"from sglang.srt.model_loader.loader import LoadFormat; print([f.value for f in LoadFormat])\""],"exampleFix":"# before\n--load-format private\n# ValueError: Failed to import sglang.private.private_model_loader\n\n# after\n--load-format auto","handlingStrategy":"validation","validationCode":"import importlib.util\nif load_format == \"private\" and importlib.util.find_spec(\"sglang.private.private_model_loader\") is None:\n    raise SystemExit(\"--load-format private requires the internal sglang build\")","typeGuard":"def private_loader_available() -> bool:\n    import importlib.util\n    return importlib.util.find_spec(\"sglang.private.private_model_loader\") is not None","tryCatchPattern":"try:\n    get_model_loader(load_config)\nexcept ValueError as e:\n    if \"private_model_loader\" in str(e):\n        load_config.load_format = \"auto\"  # fall back to public loader\n        loader = get_model_loader(load_config)","preventionTips":["Restrict allowed load formats in deployment configs to public ones","Don't replay server_args captured from internal forks on OSS builds","Validate load_format against LoadFormat's public members pre-launch"],"tags":["load-format","private-module","import-error","sglang","internal-build"],"backgroundTag":"unsupported-load-format","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}