SubtitleEdit/subtitleedit · error · PlatformNotSupportedException
Faster-Whisper-XXL is not available for Linux ARM64.
Error message
Faster-Whisper-XXL is not available for Linux ARM64.
What it means
Thrown by WhisperDownloadService.DownloadWhisperPurfviewFasterWhisperXxl when the process runs on Linux with an ARM64 CPU. The upstream Faster-Whisper-XXL release (Purfview/whisper-standalone-win) only publishes an x64 Linux binary and a Windows binary, so there is no artifact to download for aarch64. The guard fires before any network call, so the download never starts.
Source
Thrown at src/ui/Logic/Download/WhisperDownloadService.cs:81
public async Task DownloadWhisperCppCuBlas(Stream stream, IProgress<float>? progress, CancellationToken cancellationToken)
{
await DownloadHelper.DownloadFileAsync(_httpClient, GetUrlCuBlas(), stream, progress, cancellationToken);
}
public async Task DownloadWhisperConstMe(Stream stream, IProgress<float>? progress, CancellationToken cancellationToken)
{
await DownloadHelper.DownloadFileAsync(_httpClient, DownloadUrlConstMe, stream, progress, cancellationToken);
}
public async Task DownloadWhisperPurfviewFasterWhisperXxl(string destinationFileName, IProgress<float>? progress, CancellationToken cancellationToken)
{
var url = DownloadUrlPurfviewFasterWhisperXxl;
if (OperatingSystem.IsLinux())
{
if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
{
throw new PlatformNotSupportedException("Faster-Whisper-XXL is not available for Linux ARM64.");
}
url = DownloadUrlPurfviewFasterWhisperXxlLinux;
}
if (OperatingSystem.IsMacOS())
{
throw new PlatformNotSupportedException("MacOS not supported.");
}
await DownloadHelper.DownloadFileAsync(_httpClient, url, destinationFileName, progress, cancellationToken);
}
public async Task DownloadWhisperCppVulkan(Stream stream, Progress<float> progress, CancellationToken cancellationToken)
{
await DownloadHelper.DownloadFileAsync(_httpClient, GetUrlCppVulkan(), stream, progress, cancellationToken);
}
View on GitHub (pinned to 17a9f07487)
Solutions
- Switch the Whisper engine to one with an ARM64 or universal build (whisper.cpp via GetUrl, which serves a macOS ARM build, or use CTranslate2 on macOS ARM).
- Run Subtitle Edit on an x86_64 Linux host or VM where DownloadUrlPurfviewFasterWhisperXxlLinux applies.
- If you must use aarch64 Linux, build Faster-Whisper-XXL from source and place the binary in SE's expected location instead of triggering this downloader.
- Gate the UI option that exposes Faster-Whisper-XXL behind an architecture check so users on ARM64 Linux never reach this call.
Example fix
// before
await _whisperDownload.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct);
// after: guard before invoking so the engine picker never offers it
if (OperatingSystem.IsLinux() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
{
disableEngineOption(WhisperEngine.FasterWhisperXxl);
}
else
{
await _whisperDownload.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct);
} Defensive patterns
Strategy: validation
Validate before calling
bool CanDownloadFasterWhisperXxl() =>
!OperatingSystem.IsMacOS() &&
!(OperatingSystem.IsLinux() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64);
if (!CanDownloadFasterWhisperXxl()) { /* pick another engine */ } Type guard
static bool IsFasterWhisperXxlSupported() =>
OperatingSystem.IsWindows() ||
(OperatingSystem.IsLinux() && RuntimeInformation.ProcessArchitecture != Architecture.Arm64); Try / catch
try { await svc.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct); }
catch (PlatformNotSupportedException ex) when (ex.Message.Contains("Faster-Whisper-XXL"))
{ /* prompt user to choose whisper.cpp/CTranslate2 */ } Prevention
- Gate the Faster-Whisper-XXL engine option in the UI on IsFasterWhisperXxlSupported().
- Detect Linux ARM64 and macOS at app startup and disable unsupported engines before the user can select them.
When it happens
Trigger: Calling DownloadWhisperPurfviewFasterWhisperXxl while OperatingSystem.IsLinux() is true AND RuntimeInformation.ProcessArchitecture == Architecture.Arm64 (e.g. Raspberry Pi 4/5, Ampere Altra, Graviton EC2, Apple Silicon Linux VM).
Common situations: Running Subtitle Edit natively on an ARM64 Linux SBC or cloud instance and selecting the Faster-Whisper-XXL engine in the Audio-to-Text dialog. Also hit when a distribution reports aarch64 even on an x64 host through a container/QEMU build.
Related errors
- whisper.cpp Vulkan build is not available for Linux ARM64.
- whisper.cpp CUDA build is not available for Linux ARM64.
- ChatLLM is not available for Linux ARM64.
- Google Lens OCR is not available for Linux ARM64.
- llama.cpp CUDA build is not available for Linux ARM64.
AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13).
Data as JSON: /api/errors/2fddd4b87502300c.
Report an issue: GitHub.