{"record":{"id":"199d6832196cf19c","repo":"SubtitleEdit/subtitleedit","slug":"whisper-cpp-cuda-build-is-not-available-for-linux","errorCode":null,"errorMessage":"whisper.cpp CUDA build is not available for Linux ARM64.","messagePattern":"whisper\\.cpp CUDA build is not available for Linux ARM64\\.","errorType":"exception","errorClass":"PlatformNotSupportedException","httpStatus":null,"severity":"error","filePath":"src/ui/Logic/Download/WhisperDownloadService.cs","lineNumber":184,"sourceCode":"                    throw new PlatformNotSupportedException(\"Unsupported macOS architecture.\");\n            }\n        }\n\n        throw new PlatformNotSupportedException();\n    }\n\n    private static string GetUrlCuBlas()\n    {\n        if (OperatingSystem.IsWindows())\n        {\n            return WindowsUrlCuBlass;\n        }\n\n        if (OperatingSystem.IsLinux())\n        {\n            if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)\n            {\n                throw new PlatformNotSupportedException(\"whisper.cpp CUDA build is not available for Linux ARM64.\");\n            }\n\n            return LinuxUrlCuBlass;\n        }\n\n        throw new PlatformNotSupportedException();\n    }\n}","sourceCodeStart":166,"sourceCodeEnd":192,"githubUrl":"https://github.com/SubtitleEdit/subtitleedit/blob/17a9f0748781032255db3526b7215d2fb891e3af/src/ui/Logic/Download/WhisperDownloadService.cs#L166-L192","documentation":"Thrown by GetUrlCuBlas (resolver for DownloadWhisperCppCuBlas) when Linux ARM64 is detected. The CUDA build of whisper.cpp is x86_64 Linux-only (NVIDIA GPUs on aarch64 Linux are niche), so no artifact exists. Windows returns WindowsUrlCuBlass and Linux x64 returns LinuxUrlCuBlass.","triggerScenarios":"Calling DownloadWhisperCppCuBlas on Linux where ProcessArchitecture == Arm64 (e.g. Jetson Orin, Ampere with NVIDIA GPU).","commonSituations":"A user on an ARM64 Linux box with an NVIDIA GPU (Jetson, Graviton + GPU) selects the CUDA whisper.cpp engine expecting GPU acceleration.","solutions":["Use the Vulkan build instead if a GPU driver is present, or the CPU whisper.cpp build.","Compile whisper.cpp with CUDA support for aarch64 Linux yourself and bypass the downloader.","Run on x86_64 Linux so LinuxUrlCuBlass applies.","Disable the CUDA engine option in the UI when IsLinux() && ProcessArchitecture == Arm64."],"exampleFix":"// before\nif (OperatingSystem.IsLinux())\n{\n    if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)\n        throw new PlatformNotSupportedException(\"whisper.cpp CUDA build is not available for Linux ARM64.\");\n    return LinuxUrlCuBlass;\n}\n\n// after: only surface the CUDA option where a build exists\nif (OperatingSystem.IsLinux() && RuntimeInformation.ProcessArchitecture != Architecture.X64)\n{\n    disableEngine(WhisperEngine.WhisperCppCuda);\n}","handlingStrategy":"validation","validationCode":"if (OperatingSystem.IsLinux() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)\n{ /* CUDA whisper.cpp download unavailable; use Vulkan or CPU build */ }","typeGuard":"static bool CudaWhisperSupported() =>\n    OperatingSystem.IsWindows() ||\n    (OperatingSystem.IsLinux() && RuntimeInformation.ProcessArchitecture == Architecture.X64);","tryCatchPattern":"try { await svc.DownloadWhisperCppCuBlas(stream, progress, ct); }\ncatch (PlatformNotSupportedException ex) when (ex.Message.Contains(\"CUDA build is not available\"))\n{ /* offer Vulkan or CPU whisper.cpp */ }","preventionTips":["Restrict the CUDA engine option to Windows and Linux x64.","On ARM64 Linux with an NVIDIA GPU, build whisper.cpp CUDA locally."],"tags":["platform","arm64","linux","whisper","cuda","download","architecture"],"backgroundTag":null,"analyzedSha":"17a9f0748781032255db3526b7215d2fb891e3af","analyzedAt":"2026-08-13T18:11:43.374Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}