SubtitleEdit/subtitleedit · error · InvalidOperationException

Chatterbox requires CrispASR v0.6.0 or newer. Re-download Cr

Error message

Chatterbox requires CrispASR v0.6.0 or newer. Re-download CrispASR via Video → Audio to text → Engine settings → Re-download, then try again.{LaunchCmdSuffix}

What it means

The server process exited during startup and LooksLikeOutdatedCrispAsr(tail) matched — an installed CrispASR older than v0.6.0, which Chatterbox does not support. The message tells the user to re-download. Distinguished from 198/199 by the log-sniff heuristic.

Source

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

            HookProcessExitOnce();

            // First-run model auto-download (~880 MB) needs a generous timeout.
            var deadline = DateTime.UtcNow.AddMinutes(15);
            while (DateTime.UtcNow < deadline)
            {
                ct.ThrowIfCancellationRequested();
                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). "

View on GitHub (pinned to 17a9f07487)

Solutions

  1. Re-download CrispASR via Video -> Audio to text -> Engine settings -> Re-download (as the message instructs).
  2. Delete the old CrispASR binary first to avoid the launcher picking it up.
  3. Confirm the new version is >= 0.6.0 after install.
Defensive patterns

Strategy: validation

Validate before calling

var ver = DetectCrispAsrVersion(GetCrispAsrExecutable());
if (ver != null && ver < new Version(0, 6, 0)) return NeedUpgrade("CrispASR", ver);

Try / catch

try { EnsureServerRunningAsync(modelKey, ct).Wait(); }
catch (InvalidOperationException ex) when (ex.Message.Contains("CrispASR v0.6.0"))
{ /* trigger re-download of CrispASR */ }

Prevention

When it happens

Trigger: Server startup loop sees process.HasExited; LooksLikeOutdatedCrispAsr(snapshot) is true.

Common situations: User has a CrispASR build from before Chatterbox support was added; partial upgrade left an old binary in place.

Related errors


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