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).

Solutions

  1. Confirm the host OS is one of Windows, macOS, or Linux (x64/arm64).
  2. Upgrade the runtime so OperatingSystem detection is reliable.
  3. If a legitimate platform is being rejected, extend GetUrl with a branch for it.
  4. 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

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


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

Appendix: 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)