{"record":{"id":"9e1f67417a39ffcb","repo":"SubtitleEdit/subtitleedit","slug":"macos-not-supported","errorCode":null,"errorMessage":"MacOS not supported.","messagePattern":"MacOS not supported\\.","errorType":"exception","errorClass":"PlatformNotSupportedException","httpStatus":null,"severity":"error","filePath":"src/ui/Logic/Download/WhisperDownloadService.cs","lineNumber":89,"sourceCode":"    }\n\n    public async Task DownloadWhisperPurfviewFasterWhisperXxl(string destinationFileName, IProgress<float>? progress, CancellationToken cancellationToken)\n    {\n        var url = DownloadUrlPurfviewFasterWhisperXxl;\n\n        if (OperatingSystem.IsLinux())\n        {\n            if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)\n            {\n                throw new PlatformNotSupportedException(\"Faster-Whisper-XXL is not available for Linux ARM64.\");\n            }\n\n            url = DownloadUrlPurfviewFasterWhisperXxlLinux;\n        }\n\n        if (OperatingSystem.IsMacOS())\n        {\n            throw new PlatformNotSupportedException(\"MacOS not supported.\");\n        }\n\n        await DownloadHelper.DownloadFileAsync(_httpClient, url, destinationFileName, progress, cancellationToken);\n    }\n\n    public async Task DownloadWhisperCppVulkan(Stream stream,  Progress<float> progress, CancellationToken cancellationToken)\n    {\n        await DownloadHelper.DownloadFileAsync(_httpClient, GetUrlCppVulkan(), stream, progress, cancellationToken);\n    }\n    \n    public async Task DownloadWhisperCTranslate2(Stream stream,  Progress<float> progress, CancellationToken cancellationToken)\n    {\n        await DownloadHelper.DownloadFileAsync(_httpClient, GetUrlTranslate2(), stream, progress, cancellationToken);\n    }\n\n    public async Task DownloadSileroVad(Stream stream, IProgress<float>? progress, CancellationToken cancellationToken)\n    {\n        await DownloadHelper.DownloadFileAsync(_httpClient, SileroVadUrl, stream, progress, cancellationToken);","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/SubtitleEdit/subtitleedit/blob/17a9f0748781032255db3526b7215d2fb891e3af/src/ui/Logic/Download/WhisperDownloadService.cs#L71-L107","documentation":"Thrown by DownloadWhisperPurfviewFasterWhisperXxl when the process runs on macOS. The Purfview Faster-Whisper-XXL standalone tool has no macOS build at all (the project is named whisper-standalone-win), so the download is rejected up front. The check runs after the Linux branch, so only an unsupplied macOS path reaches it.","triggerScenarios":"Calling DownloadWhisperPurfviewFasterWhisperXxl on any macOS host (Intel or Apple Silicon), because the only supported branches are Linux x64 and Windows.","commonSituations":"A macOS user (M1/M2/M3/M4 or Intel Mac) opens Audio-to-Text and picks Faster-Whisper-XXL. The error surfaces immediately because no macOS binary is published.","solutions":["On macOS use whisper.cpp (GetUrl returns MacArmUrl/MacX64Url) or CTranslate2 (MacArmCTranslate2 is available for Apple Silicon).","Hide the Faster-Whisper-XXL engine option in the UI when OperatingSystem.IsMacOS() is true.","If the binary is required, run Subtitle Edit inside a Windows/Linux VM on the Mac."],"exampleFix":"// before\nawait _whisperDownload.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct);\n\n// after\nif (OperatingSystem.IsMacOS())\n{\n    showUser(\"Faster-Whisper-XXL has no macOS build; use whisper.cpp or CTranslate2.\");\n}\nelse\n{\n    await _whisperDownload.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct);\n}","handlingStrategy":"validation","validationCode":"if (OperatingSystem.IsMacOS()) { /* do not call DownloadWhisperPurfviewFasterWhisperXxl */ }","typeGuard":"static bool FasterWhisperXxlSupportsCurrentOs() =>\n    OperatingSystem.IsWindows() || OperatingSystem.IsLinux();","tryCatchPattern":"try { await svc.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct); }\ncatch (PlatformNotSupportedException ex) when (ex.Message == \"MacOS not supported.\")\n{ /* offer whisper.cpp or CTranslate2 on macOS */ }","preventionTips":["Hide the Faster-Whisper-XXL option on macOS in the engine picker.","Document which engines are macOS-capable (whisper.cpp, CTranslate2-ARM) vs Windows/Linux-only."],"tags":["platform","macos","whisper","download","architecture"],"backgroundTag":null,"analyzedSha":"17a9f0748781032255db3526b7215d2fb891e3af","analyzedAt":"2026-08-13T18:11:43.374Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}