SubtitleEdit/subtitleedit · error · InvalidOperationException

Chatterbox failed to load its model — the GGUFs in {GetSetMo

Error message

Chatterbox failed to load its model — the GGUFs in {GetSetModelsFolder()} are likely stale or partially downloaded. Delete them and try again so they re-download. Original output: {tail}{LaunchCmdSuffix}

What it means

Server exited at startup and LooksLikeStaleModelCache(tail) matched — the GGUF model files in GetSetModelsFolder() are partial, corrupt, or a mixed version. The message names the folder and tells the user to delete the GGUFs so they re-download; the original server output is appended.

Source

Thrown at src/ui/Features/Video/TextToSpeech/Engines/ChatterboxTtsCpp.cs:644

                if (process.HasExited)
                {
                    var tail = SnapshotServerLog();
                    var exitCode = process.ExitCode;
                    var exitedLaunchCommand = _serverLaunchCommand;
                    _serverProcess = null;
                    _serverPort = 0;
                    _serverModelKey = null;
                    _serverLaunchCommand = null;
                    if (LooksLikeOutdatedCrispAsr(tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox requires CrispASR v0.6.0 or newer. Re-download CrispASR via "
                            + "Video → Audio to text → Engine settings → Re-download, then try again."
                            + LaunchCmdSuffix(exitedLaunchCommand));
                    }
                    if (LooksLikeStaleModelCache(tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox failed to load its model — the GGUFs in "
                            + GetSetModelsFolder() + " are likely stale or partially downloaded. "
                            + "Delete them and try again so they re-download. Original output: " + tail
                            + LaunchCmdSuffix(exitedLaunchCommand));
                    }
                    if (LooksLikeChatterboxTurboTokenizerMismatch(tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox TTS \"Turbo\" does not load with CrispASR 0.8.0. The turbo model "
                            + "is fine — 0.8.0's tokenizer/vocab check was overly strict and rejected its "
                            + "benign embedding superset (50257-token tokenizer, text vocab size 50276). "
                            + "This is fixed upstream (CrispStrobe/CrispASR#181): a newer CrispASR loads "
                            + "Turbo normally, with no re-download. Until then, switch to the \"Base\" "
                            + "Chatterbox model, which works."
                            + Environment.NewLine + Environment.NewLine + tail
                            + LaunchCmdSuffix(exitedLaunchCommand));
                    }
                    if (LooksLikeChatterboxTurboStartupCrash(modelKey, tail))

View on GitHub (pinned to 17a9f07487)

Solutions

  1. Delete the GGUFs in GetSetModelsFolder() and retry so they re-download (as the message instructs).
  2. Check free disk space before re-downloading.
  3. Verify network stability for the model download host.
  4. Read the appended tail output for the specific load error.
Defensive patterns

Strategy: validation

Validate before calling

var models = GetSetModelsFolder();
if (!Directory.EnumerateFiles(models, "*.gguf").Any()) return NeedDownload("Chatterbox GGUFs", models);
// optionally validate each GGUF size against expected

Try / catch

try { EnsureServerRunningAsync(modelKey, ct).Wait(); }
catch (InvalidOperationException ex) when (ex.Message.Contains("stale or partially downloaded"))
{ /* delete GGUFs in GetSetModelsFolder(), then retry to re-download */ }

Prevention

When it happens

Trigger: Server startup loop sees process.HasExited; LooksLikeOutdatedCrispAsr false, LooksLikeStaleModelCache true.

Common situations: Interrupted model download; disk filled mid-download; user copied a mix of GGUFs from different model versions; GGUF truncated by AV/network.

Related errors


AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13). Data as JSON: /api/errors/83773d69d47c91a6. Report an issue: GitHub.