sgl-project/sglang · info

The 'checksums' format is deprecated. Please regenerate with

Error message

The 'checksums' format is deprecated. Please regenerate with the latest version to use the new 'files' format.

What it means

The model file verifier's Manifest.from_dict detects the legacy 'checksums' key in a manifest JSON instead of the current 'files' format, and emits a DeprecationWarning before parsing the old layout. Manifests generated by older SGLang tooling will still verify but should be regenerated with the new format.

Source

Thrown at python/sglang/srt/utils/model_file_verifier.py:39

from typing import Dict, List, Optional, Tuple

# ======== Data Format ========


@dataclass
class FileInfo:
    sha256: str
    size: int


@dataclass
class Manifest:
    files: Dict[str, FileInfo]

    @classmethod
    def from_dict(cls, data: dict) -> "Manifest":
        if "checksums" in data:
            warnings.warn(
                "The 'checksums' format is deprecated. "
                "Please regenerate with the latest version to use the new 'files' format.",
                DeprecationWarning,
                stacklevel=3,
            )
            return cls(
                files={
                    k: FileInfo(sha256=v, size=-1) for k, v in data["checksums"].items()
                }
            )
        return cls(files={k: FileInfo(**v) for k, v in data["files"].items()})

    def to_dict(self) -> dict:
        return asdict(self)


# ======== Constants ========

View on GitHub (pinned to 0132848349)

Solutions

  1. Regenerate the manifest with the current SGLang tooling (the model-file verifier generation command in your version) so it emits the 'files' format
  2. If regeneration is impossible short-term, keep the old manifest — it still works, only warns
  3. Ensure generating and verifying jobs run the same SGLang version

Example fix

# before (manifest.json)
{"checksums": {"a.safetensors": "sha256..."}}
# after
{"files": {"a.safetensors": {"sha256": "...", "size": 123}}}
# regenerate with the current generator instead of hand-editing
Defensive patterns

Strategy: validation

Validate before calling

data = json.load(open("manifest.json"))
if "checksums" in data:
    warnings.simplefilter("once", DeprecationWarning)  # expect legacy manifest

Type guard

is_legacy = isinstance(data, dict) and "checksums" in data and "files" not in data

Prevention

When it happens

Trigger: Calling Manifest.from_dict (via _load_checksums during model-file integrity verification) on a manifest file produced by an older generator version whose top-level key is 'checksums' rather than 'files'.

Common situations: Reusing an old verification manifest after upgrading SGLang; CI artifact manifests pinned to a previous release; mixed-version pipelines where one job generates and another verifies.

Related errors


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/512e2cb601ffec9f. Report an issue: GitHub.