deezer/spleeter · error · ValueError

No checksum for model {name}

Error message

No checksum for model {name}

What it means

This error comes from the GitHub model provider's checksum lookup: it fetches the model index (a JSON document mapping model names to checksums) from a remote URL, and raises ValueError when the requested model name is not a key in that index. It means spleeter cannot verify the integrity data for the model you asked to download, so it refuses to proceed. Usually this indicates a typo in the model name or an index fetched from the wrong/older remote source.

Source

Thrown at spleeter/model/provider/github.py:128

        Raises:
            ValueError:
                If the given model name is not indexed.
        """
        url: str = "/".join(
            (
                self._host,
                self._repository,
                self.RELEASE_PATH,
                self._release,
                self.CHECKSUM_INDEX,
            )
        )
        response: httpx.Response = httpx.get(url)
        response.raise_for_status()
        index: Dict = response.json()
        if name not in index:
            raise ValueError(f"No checksum for model {name}")
        return index[name]

    def download(self, name: str, path: str) -> None:
        """
        Download model denoted by the given name to disk.

        Parameters:
            name (str):
                Name of the model to download.
            path (str):
                Path of the directory to save model into.
        """
        url: str = "/".join(
            (self._host, self._repository, self.RELEASE_PATH, self._release, name)
        )
        url = f"{url}.tar.gz"
        logger.info(f"Downloading model archive {url}")
        with httpx.Client(http2=True) as client:

View on GitHub (pinned to c8854001ac)

Solutions

  1. Verify the model name spelling against the models published in the spleeter model index (e.g. 'spleeter:2stems', 'spleeter:4stems', 'spleeter:5stems')
  2. Call test_checksum(name) first to confirm the name resolves before attempting a full download
  3. Check the index URL used by GitHubModelProvider is reachable and returns the current JSON (httpx.get of the index) and that no proxy/cache is serving a stale copy
  4. Upgrade spleeter to a version whose index URL matches the currently published models, or host your own index and add your model to it

Example fix

// before
provider.download('2stems', './models')  # ValueError: No checksum for model 2stems
// after
provider.download('spleeter:2stems', './models')
Defensive patterns

Strategy: validation

Validate before calling

from spleeter.model.provider.github import GitHubModelProvider
provider = GitHubModelProvider()
provider.test_checksum('spleeter:2stems')  # raises ValueError early if unknown

Type guard

import httpx

def model_in_index(provider, name: str) -> bool:
    index = httpx.get(provider._index_url).json()  # or re-fetch the index
    return isinstance(index, dict) and name in index

Try / catch

try:
    provider.download(name, path)
except ValueError as e:
    if 'No checksum for model' in str(e):
        print(f'Unknown model {name!r}; use spleeter:2stems / 4stems / 5stems')
    else:
        raise

Prevention

When it happens

Trigger: Calling download(name, path) (or test_checksum) on GitHubModelProvider with a name that is absent from the remote index JSON; e.g. a misspelled model like '2stems' instead of 'spleeter:2stems'-style names, a model removed from the index, or an index URL pointing at an outdated fork/release.

Common situations: Typos in the model name passed to the separator constructor or model_provider.download; using a custom/unofficial model name that was never published to the index; network proxies caching a stale index; pinning an old spleeter version whose index URL no longer matches published models.

Related errors


AI-assisted analysis of deezer/spleeter@c8854001ac (2026-08-28). Data as JSON: /api/errors/bb27df732ad87558. Report an issue: GitHub.