{"record":{"id":"4422a9504f027e92","repo":"sgl-project/sglang","slug":"minimax-h3-adaln-cache-model-variant-does-not-matc","errorCode":null,"errorMessage":"MiniMax H3 AdaLN cache model_variant does not match the loaded variant ({cache_variant!r} != {self.model_variant!r})","messagePattern":"MiniMax H3 AdaLN cache model_variant does not match the loaded variant \\((.+?) != (.+?)\\)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/models/dits/minimax_h3.py","lineNumber":1185,"sourceCode":"        self._slots: dict[tuple[int, ...], int] = {}\n        self.rebuilds = 0\n\n    def load(self, device: torch.device) -> None:\n        if self.path is None:\n            self._allocate(device)\n            return\n        if not os.path.isfile(self.path):\n            raise ValueError(f\"MiniMax H3 AdaLN cache does not exist: {self.path}\")\n\n        with safe_open(self.path, framework=\"pt\", device=\"cpu\") as cache_file:\n            metadata = cache_file.metadata() or {}\n            if metadata.get(\"format_version\") != self._FORMAT_VERSION:\n                raise ValueError(\n                    \"MiniMax H3 AdaLN cache has an unsupported or missing format_version\"\n                )\n            cache_variant = metadata.get(\"model_variant\")\n            if self.model_variant is not None and cache_variant != self.model_variant:\n                raise ValueError(\n                    \"MiniMax H3 AdaLN cache model_variant does not match the loaded \"\n                    f\"variant ({cache_variant!r} != {self.model_variant!r})\"\n                )\n            plan_timesteps = cache_file.get_tensor(\"plan_timesteps\")\n            plan_lengths = cache_file.get_tensor(\"plan_lengths\")\n            block_params = cache_file.get_tensor(\"block_params\")\n            final_params = cache_file.get_tensor(\"final_params\")\n\n        expected_block_width = 6 * MINIMAX_H3_ADALN_MODALITY_NUM * self.hidden_size\n        expected_final_width = 2 * self.hidden_size\n        if (\n            plan_timesteps.dtype != _FP32_DTYPE\n            or plan_timesteps.ndim != 2\n            or plan_lengths.dtype != torch.int64\n            or plan_lengths.shape != (plan_timesteps.shape[0],)\n            or (plan_lengths < 1).any()\n            or (plan_lengths > plan_timesteps.shape[1]).any()\n        ):","sourceCodeStart":1167,"sourceCodeEnd":1203,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/models/dits/minimax_h3.py#L1167-L1203","documentation":"The sidecar's recorded model_variant metadata disagrees with the model_variant the runtime expects (comparison only happens when self.model_variant is not None). The timestep plans are variant-specific, so loading them for a different variant would corrupt behavior.","triggerScenarios":"Loading a sidecar generated for variant 'A' while the server/model runs variant 'B'; cache_variant metadata string != self.model_variant string.","commonSituations":"Sharing one sidecar directory across multiple MiniMax H3 model variants, renaming a variant identifier between releases, or copying checkpoint+cache partially during a variant switch.","solutions":["Regenerate the sidecar for the currently loaded variant","Point the cache path at the sidecar matching this variant (per-variant filenames/dirs)","If variant names changed across versions, rebuild caches after upgrading"],"exampleFix":"# before\ncache = MinimaxH3AdaLNCache(path=\"shared/adaln_cache.safetensors\", model_variant=\"h3-large\")\n# after\ncache = MinimaxH3AdaLNCache(path=\"per_variant/h3-base/adaln_cache.safetensors\", model_variant=\"h3-base\")","handlingStrategy":"validation","validationCode":"with safe_open(path, framework=\"pt\") as f:\n    cached = (f.metadata() or {}).get(\"model_variant\")\nassert cached == expected_variant, f\"sidecar is {cached!r}, running {expected_variant!r}\"","typeGuard":"def sidecar_matches_variant(path: str, variant: str) -> bool:\n    with safe_open(path, framework=\"pt\") as f:\n        return (f.metadata() or {}).get(\"model_variant\") == variant","tryCatchPattern":null,"preventionTips":["Store sidecars per variant: <variant>/adaln_cache.safetensors","Always pass model_variant when constructing the cache","Verify variant metadata in provisioning scripts"],"tags":["minimax-h3","adaln-cache","variant-mismatch"],"backgroundTag":"cache-model-mismatch","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}