{"record":{"id":"db2a0426ac25fb5a","repo":"sgl-project/sglang","slug":"model-index-json-minimax-h3-schema-version-must-b","errorCode":null,"errorMessage":"model_index.json._minimax_h3.schema_version must be 1","messagePattern":"model_index\\.json\\._minimax_h3\\.schema_version must be 1","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"critical","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/release_metadata.py","lineNumber":62,"sourceCode":"\n@dataclass(frozen=True)\nclass MiniMaxH3ReleaseMetadata:\n    schema_version: int\n    partition: str\n    tasks: tuple[str, ...]\n    task_aliases: Mapping[str, str]\n    video_sigma_shift: float\n    audio_sigma_shift: float\n\n    @classmethod\n    def from_model_index(\n        cls, model_index: Mapping[str, Any]\n    ) -> MiniMaxH3ReleaseMetadata:\n        raw = model_index.get(\"_minimax_h3\")\n        if not isinstance(raw, Mapping):\n            raise ValueError(\"model_index.json._minimax_h3 must be an object\")\n        if raw.get(\"schema_version\") != 1:\n            raise ValueError(\"model_index.json._minimax_h3.schema_version must be 1\")\n        partition = raw.get(\"partition\")\n        if partition not in {\"fl2va\", \"ref2va\"}:\n            raise ValueError(\n                \"model_index.json._minimax_h3.partition must be one of \" \"fl2va, ref2va\"\n            )\n        tasks = _string_list(raw.get(\"tasks\"), \"model_index.json._minimax_h3.tasks\")\n        aliases = raw.get(\"task_aliases\", {})\n        if not isinstance(aliases, Mapping) or any(\n            not isinstance(key, str)\n            or not key\n            or not isinstance(value, str)\n            or not value\n            for key, value in aliases.items()\n        ):\n            raise ValueError(\n                \"model_index.json._minimax_h3.task_aliases must map strings to strings\"\n            )\n        scales = raw.get(\"sigma_shift_scales\")","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/release_metadata.py#L44-L80","documentation":"The _minimax_h3 metadata block in model_index.json must declare schema_version exactly equal to 1. Any other value (including missing, which becomes None) is rejected so that future format changes fail closed rather than being misparsed.","triggerScenarios":"schema_version set to 2, \"1\" (string), 1.0 mismatch handling, or omitted; raised during from_model_index/_load_config.","commonSituations":"Metadata written by a newer/older release format, or hand-authored without the version field.","solutions":["Set \"schema_version\": 1 (integer) in the _minimax_h3 block","If the release genuinely uses a newer schema, upgrade sglang to the matching version","Regenerate model_index.json with the tooling matching your sglang version"],"exampleFix":"// before\n\"_minimax_h3\": {\"schema_version\": 2, ...}\n\n// after\n\"_minimax_h3\": {\"schema_version\": 1, \"partition\": \"fl2va\", \"tasks\": [\"t2v\"]}","handlingStrategy":"try-catch","validationCode":"def schema_version_ok(idx) -> bool:\n    return isinstance(idx.get(\"_minimax_h3\", {}).get(\"schema_version\"), int) and idx[\"_minimax_h3\"][\"schema_version\"] == 1","typeGuard":null,"tryCatchPattern":"try:\n    meta = MiniMaxH3ReleaseMetadata.from_model_index(idx)\nexcept ValueError as e:\n    if 'schema_version' in str(e):\n        upgrade_or_repackage()\n    raise","preventionTips":["Match sglang version to the release that produced the checkpoint","Pin the metadata schema version in packaging scripts"],"tags":["minimax-h3","model-index","schema-version"],"backgroundTag":"config-schema-validation-failed","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}