{"record":{"id":"aee1da5e83fae56e","repo":"sgl-project/sglang","slug":"minimax-h3-qwen3-vl-encoders-smaller-than-32b-requ","errorCode":null,"errorMessage":"MiniMax H3 Qwen3-VL encoders smaller than 32B require --component-paths.conditioning_projection","messagePattern":"MiniMax H3 Qwen3-VL encoders smaller than 32B require --component-paths\\.conditioning_projection","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"critical","filePath":"python/sglang/multimodal_gen/runtime/models/encoders/minimax_h3_qwen3vl.py","lineNumber":229,"sourceCode":"    # Comfy packs the vision tower across whole tensors rather than rows. Keep\n    # its language/vocabulary matrices packed and restore this smaller tower.\n    gguf_dequantize_prefixes = (\"visual.\", \"model.visual.\")\n\n    @classmethod\n    def configure_component_paths(\n        cls,\n        config: MiniMaxH3Qwen3VLConfig,\n        component_paths: dict[str, str],\n    ) -> None:\n        arch = config.arch_config\n        source = component_paths.get(\"conditioning_projection\")\n        if source is None:\n            if (\n                int(arch.hidden_size) != MINIMAX_H3_QWEN3VL_HIDDEN_DIM\n                or int(arch.checkpoint_num_hidden_layers)\n                < MINIMAX_H3_QWEN3VL_SELECTED_LM_LAYER\n            ):\n                raise ValueError(\n                    \"MiniMax H3 Qwen3-VL encoders smaller than 32B require \"\n                    \"--component-paths.conditioning_projection\"\n                )\n            return\n\n        projection_path = materialize_weight(resolve_weight(source))\n        tap, input_dim, output_dim = MiniMaxH3ConditioningProjection.inspect(\n            projection_path\n        )\n        if input_dim != int(arch.hidden_size):\n            raise ValueError(\n                f\"H3 conditioning projection expects encoder width {input_dim}, \"\n                f\"but the selected text encoder has width {int(arch.hidden_size)}\"\n            )\n        if output_dim != MINIMAX_H3_QWEN3VL_HIDDEN_DIM:\n            raise ValueError(\n                f\"H3 conditioning projection must output width \"\n                f\"{MINIMAX_H3_QWEN3VL_HIDDEN_DIM}, got {output_dim}\"","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/models/encoders/minimax_h3_qwen3vl.py#L211-L247","documentation":"For MiniMax H3 Qwen3-VL encoders whose hidden size isn't the 32B value or which have fewer layers than the required tap layer, an external conditioning projection checkpoint must be supplied via --component-paths.conditioning_projection. Without it the model cannot extract conditioning features.","triggerScenarios":"configure_component_paths called with source=None while arch.hidden_size != MINIMAX_H3_QWEN3VL_HIDDEN_DIM or checkpoint_num_hidden_layers < MINIMAX_H3_QWEN3VL_SELECTED_LM_LAYER.","commonSituations":"Running a smaller MiniMax H3 variant (non-32B) without providing the projection component path; misconfigured server args where conditioning_projection was omitted.","solutions":["Add --component-paths.conditioning_projection <path-to-projection.safetensors> to server args","If you intend to run the 32B model, verify the checkpoint/config actually has the 32B hidden size and layer count","Double-check the config.json hidden_size and num_hidden_layers of the loaded encoder"],"exampleFix":"# before\nserver_args = ServerArgs(model_path=\"minimax-h3-qwen3vl-small\")\n# after\nserver_args = ServerArgs(\n    model_path=\"minimax-h3-qwen3vl-small\",\n    component_paths={\"conditioning_projection\": \"/models/h3_proj.safetensors\"},\n)","handlingStrategy":"validation","validationCode":"hidden = arch.hidden_size\nlayers = arch.checkpoint_num_hidden_layers\nneeds_proj = hidden != MINIMAX_H3_QWEN3VL_HIDDEN_DIM or layers < MINIMAX_H3_QWEN3VL_SELECTED_LM_LAYER\nif needs_proj:\n    assert args.component_paths.get(\"conditioning_projection\"), \"smaller H3 models require --component-paths.conditioning_projection\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep a checklist of required component paths per model size","Validate server args against model config.json before launch"],"tags":["minimax-h3","conditioning-projection","missing-component","server-args"],"backgroundTag":"missing-required-config","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}