SubtitleEdit/subtitleedit · error · PlatformNotSupportedException
Operation is not supported on this platform.
Error message
Operation is not supported on this platform.
What it means
PlatformNotSupportedException with no message, thrown by OmniVoiceDownloadService.GetUrl after the Windows/Mac/Linux branches all fail to match. It signals that the runtime OS is none of the recognized ones (or the OS detection returned something unexpected).
Source
Thrown at src/ui/Logic/Download/OmniVoiceDownloadService.cs:140
WindowsVariantCuda => WindowsCudaUrl,
WindowsVariantVulkan => WindowsVulkanUrl,
_ => WindowsCpuUrl,
};
}
if (OperatingSystem.IsMacOS())
{
return MacOsUrl;
}
if (OperatingSystem.IsLinux())
{
return RuntimeInformation.ProcessArchitecture == Architecture.Arm64
? LinuxArm64Url
: LinuxX64Url;
}
throw new PlatformNotSupportedException();
}
}
View on GitHub (pinned to 17a9f07487)
Solutions
- Confirm the host OS is one of Windows, macOS, or Linux (x64/arm64).
- Upgrade the runtime so OperatingSystem detection is reliable.
- If a legitimate platform is being rejected, extend GetUrl with a branch for it.
- File a bug if detection fails on a supported OS.
Example fix
// before
throw new PlatformNotSupportedException();
// after - name the platform so the user can act on it
throw new PlatformNotSupportedException(
$"OmniVoice engine has no build for this platform " +
$"(OS={RuntimeInformation.OSDescription}, ARCH={RuntimeInformation.ProcessArchitecture})."); Defensive patterns
Strategy: validation
Validate before calling
if (!OperatingSystem.IsWindows() && !OperatingSystem.IsMacOS() && !OperatingSystem.IsLinux())
{
// surface a clear message instead of letting GetUrl throw bare
throw new InvalidOperationException($"Unsupported OS: {RuntimeInformation.OSDescription}");
} Try / catch
try { url = service.GetUrl(variant); }
catch (PlatformNotSupportedException) { /* show OS/ARCH not supported message, hide the engine */ } Prevention
- Gate engine availability in the UI by OS+ARCH before the user can request a download.
- Upgrade the runtime so OS detection is reliable in containers.
- Provide a clear user-facing message naming the unsupported platform.
When it happens
Trigger: GetUrl is reached only when OperatingSystem.IsWindows() is false, IsMacOS() is false, and IsLinux() is false - effectively only on an exotic/unsupported OS (BSD, Solaris, etc.) or a sandboxed runtime where OS detection is unreliable.
Common situations: Running under an unusual OS, an older runtime where OS guards behave differently, or in a constrained container that misreports the platform. In practice on Windows/Mac/Linux this path is unreachable, so hitting it usually means a detection bug or an unsupported deployment target.
Related errors
- Process.Start() is not supported on this platform.
- PaddleOCR is not available for Linux ARM64.
- Operation is not supported on this platform.
- Operation is not supported on this platform.
- Operation is not supported on this platform.
AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13).
Data as JSON: /api/errors/0bf9cabe009d5bc2.
Report an issue: GitHub.