unslothai/unsloth · error · SttModelNotDownloadedError

STT model '{model_id}' is not downloaded. Download it in Set

Error message

STT model '{model_id}' is not downloaded. Download it in Settings, then Voice, before loading it.

What it means

Raised by _ensure_model_downloaded when _find_complete_cached_snapshot(model_id) returns None — no complete local snapshot of the model exists in the HF cache. Loading is only permitted from fully downloaded snapshots; partial downloads do not count.

Source

Thrown at studio/backend/core/inference/stt_sidecar.py:1423

        the load it precedes would be turned away as a checkpoint that is not
        downloaded.
        """
        model_id = resolve_model_id(model_id)
        with self._lock:
            reusable = self._engine is not None and self._model_id == model_id
            if reusable and not self._is_survivor_locked():
                resident_model = (
                    self._engine[0] if isinstance(self._engine, (tuple, list)) else self._engine
                )
                generation_config = getattr(resident_model, "generation_config", None)
                is_multilingual = getattr(generation_config, "is_multilingual", None)
                return _CachedSttSnapshot(
                    path = None,
                    is_multilingual = is_multilingual if isinstance(is_multilingual, bool) else None,
                )
        snapshot_path = _find_complete_cached_snapshot(model_id)
        if snapshot_path is None:
            raise SttModelNotDownloadedError(
                f"STT model '{model_id}' is not downloaded. "
                "Download it in Settings, then Voice, before loading it."
            )

        if model_id in STT_MODELS:
            return _CachedSttSnapshot(path = snapshot_path, is_multilingual = True)

        if not _is_whisper_config(_read_json_object(snapshot_path / "config.json")):
            raise SttModelCompatibilityError(
                f"STT model '{model_id}' is not a compatible Transformers Whisper model."
            )
        generation_config = _read_json_object(snapshot_path / "generation_config.json")
        is_multilingual = generation_config.get("is_multilingual")
        if isinstance(is_multilingual, bool):
            return _CachedSttSnapshot(path = snapshot_path, is_multilingual = is_multilingual)
        if resolve_model_repo(model_id).lower().endswith(".en"):
            return _CachedSttSnapshot(path = snapshot_path, is_multilingual = False)
        return _CachedSttSnapshot(path = snapshot_path, is_multilingual = None)

View on GitHub (pinned to 203007d190)

Solutions

  1. Trigger the download flow first (Settings > Voice in the studio UI) and wait for it to complete before loading.
  2. Programmatically call the download API for the model id and await completion, then retry load.
  3. If you believe it is downloaded, verify the cache location matches (HF_HOME/HF_HUB_CACHE env at both download and load time) and that the snapshot dir is complete.

Example fix

# before
engine = sidecar.load("whisper-large-v3")  # SttModelNotDownloadedError
# after
await download_model("whisper-large-v3")
engine = sidecar.load("whisper-large-v3")
Defensive patterns

Strategy: validation

Validate before calling

from studio.backend.core.inference.stt_sidecar import _find_complete_cached_snapshot, resolve_model_id
if _find_complete_cached_snapshot(resolve_model_id(model)) is None:
    await trigger_download(model)  # Settings > Voice flow

Try / catch

try:
    engine = sidecar.load(model)
except SttModelNotDownloadedError:
    await download_model(model)
    engine = sidecar.load(model)

Prevention

When it happens

Trigger: Calling load()/transcribe() (which triggers _ensure_model_downloaded) with a model id that has no complete snapshot under the captured hub cache directory; distinct from error 413, which fires when the cached metadata exists but yields path=None.

Common situations: Fresh install with no models fetched yet; a previous download cancelled midway leaving only incomplete blobs; HF cache cleaned or on a different HF_HOME than at download time; custom model ids never pre-fetched.

Related errors


AI-assisted analysis of unslothai/unsloth@203007d190 (2026-08-15). Data as JSON: /api/errors/808c7acb7aceb7ad. Report an issue: GitHub.