SubtitleEdit/subtitleedit · error · PlatformNotSupportedException
Process.Start() is not supported on this platform.
Error message
Process.Start() is not supported on this platform.
What it means
PlatformNotSupportedException thrown by the voice-format conversion helper when the host OS is neither Windows, Linux, nor macOS. The conversion is delegated to ffmpeg via FfmpegGenerator.ConvertFormat, and Process.Start — required to run ffmpeg — is only invoked on the three supported platforms; anything else (e.g. FreeBSD) hits this guard.
Source
Thrown at src/ui/Features/Video/TextToSpeech/Engines/Qwen3TtsCpp.cs:572
var voicesFolder = GetSetVoicesFolder();
var baseName = Path.GetFileNameWithoutExtension(fileName);
var destinationFileName = GetUniqueDestinationFileName(voicesFolder, baseName);
if (Path.GetExtension(fileName).Equals(".wav", StringComparison.OrdinalIgnoreCase))
{
File.Copy(fileName, destinationFileName, overwrite: false);
return true;
}
var process = FfmpegGenerator.ConvertFormat(fileName, destinationFileName);
if (OperatingSystem.IsWindows() || OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
{
_ = process.Start();
}
else
{
throw new PlatformNotSupportedException("Process.Start() is not supported on this platform.");
}
process.WaitForExit();
return File.Exists(destinationFileName);
}
}
View on GitHub (pinned to 17a9f07487)
Solutions
- Run the app on Windows, Linux, or macOS — these are the only supported hosts for the conversion path.
- Pre-convert the source audio to a supported format (24 kHz mono WAV) on a supported OS so the in-app ffmpeg step is skipped.
- If you maintain a port, replace the guard with a Process.Start path that works on your platform and contribute the change upstream.
- Confirm OperatingSystem.IsLinux()/IsMacOS() return true on your host — a runtime bug can mis-classify.
Defensive patterns
Strategy: validation
Validate before calling
if (!OperatingSystem.IsWindows() && !OperatingSystem.IsLinux() && !OperatingSystem.IsMacOS())
throw new PlatformNotSupportedException("Process.Start() is not supported on this platform."); Try / catch
try { _ = process.Start(); }
catch (PlatformNotSupportedException ex) { Se.LogError(ex); throw; } Prevention
- Run only on Windows/Linux/macOS for the conversion path.
- Pre-convert audio on a supported OS to skip the in-app ffmpeg step.
- Gate the conversion feature behind a platform check in the UI.
When it happens
Trigger: Running the app on FreeBSD, a non-standard Linux variant that OperatingSystem.IsLinux() reports as false, or an unsupported mobile/console platform; an older target framework where the OS-gating APIs behave differently.
Common situations: Community ports to unsupported OSes; CI on an unusual container base; a misreported platform due to runtime version skew.
Related errors
- Process.Start() is not supported on this platform.
- Process.Start() is not supported on this platform.
- MOSS-TTS (CrispASR) request failed — the connection to the c
- MOSS-TTS (CrispASR) synthesis failed ({(int)response.StatusC
- CrispASR executable not found. Install CrispASR via Video →
AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13).
Data as JSON: /api/errors/474de09a5234c2d4.
Report an issue: GitHub.