[BUG] Claude Desktop (MSIX) black/white screen on Windows — GPU rendering fails, complete workaround included
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Desktop (MSIX/Windows Store, v1.10628.2.0) fails to render on Windows 11. The window opens but shows a black or white screen. The log shows:
[warn] [buddy-ble] mainView not ready: Timed out waiting for mainView to become ready
This has been reported in #45031, #25801, #56805, #38014, and #21803 (all locked/closed). Those issues told me to file a new one.
Root cause (3 factors combined):
- GPU driver incompatibility — Electron GPU acceleration fails with certain drivers (AMD RDNA 4, NVIDIA + HDR, Intel, Apple Silicon)
- RendererCodeIntegrity — Windows security feature blocks the Electron renderer
- Corrupt GPU cache — switching between GPU-enabled/disabled creates corrupt cache that blocks rendering even with --disable-gpu
I developed a complete, update-safe workaround using a Scheduled Task + PowerShell launcher with dynamic MSIX path resolution. Full details in the Steps to Reproduce section below.
What Should Happen?
Claude Desktop should render its UI normally, regardless of GPU vendor or driver version.
Ideally, Claude Desktop should include a "Disable Hardware Acceleration" toggle in Settings — like Discord, VS Code, and Slack already have. This would fix the issue for all affected users without requiring external workarounds.
Alternatively: the MSIX package should respect the ELECTRON_EXTRA_LAUNCH_ARGS environment variable, so users can pass Chromium flags like --disable-gpu.
Error Messages/Logs
[warn] [buddy-ble] mainView not ready: Timed out waiting for mainView to become ready
Steps to Reproduce
- Install Claude Desktop from Windows Store (MSIX package)
- Launch Claude Desktop normally
- Window appears but content is black or white — no UI renders
Complete workaround (reboot-safe, update-safe):
PowerShell launcher (%APPDATA%\Claude\start_claude.ps1):
Remove-Item "$env:APPDATA\Claude\GPUCache" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATA\Claude\DawnCache" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATA\Claude\DawnWebGPUCache" -Recurse -Force -ErrorAction SilentlyContinue
$p = (Get-AppxPackage -Name Claude).InstallLocation
if ($p) { Start-Process (Join-Path $p 'app\claude.exe') -ArgumentList '--disable-gpu','--disable-features=RendererCodeIntegrity' }
Scheduled Task (auto-starts Claude at login with fix):
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-WindowStyle Hidden -ExecutionPolicy Bypass -File "$env:APPDATA\Claude\start_claude.ps1""
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
Register-ScheduledTask -TaskName "ClaudeDesktopGPUFix" -Action $action -Trigger $trigger -Settings $settings
Disable MSIX autostart (prevents dual-instance conflict):
Get-ChildItem "HKCU:\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData" -EA 0 | Where-Object { $_.Name -match 'Claude' } | ForEach-Object { Get-ChildItem $_.PSPath -EA 0 } | Where-Object { $_.PSChildName -match 'Startup' } | ForEach-Object { Set-ItemProperty $_.PSPath -Name "State" -Value 1 }
Why this approach? Get-AppxPackage resolves the MSIX path dynamically. When Claude updates and the version folder changes, the script finds the new path automatically.
What does NOT work (all tested):
- ELECTRON_EXTRA_LAUNCH_ARGS env var — MSIX sandbox ignores user environment variables
- hardware_acceleration_mode: false in Preferences/Local State — Electron reads it after initial render, too late
- chrome-flags.conf / electron-flags.conf — MSIX version does not read these
- --disable-gpu alone (without cache clear) — Corrupt GPU cache blocks rendering
- --disable-gpu alone (v1.10628.2.0+) — Needs --disable-features=RendererCodeIntegrity additionally
- --disable-software-rasterizer — Removes software fallback, renderer crashes
Claude Model
None
Is this a regression?
I don't know
Last Working Version
--
Claude Code Version
Claude Desktop v1.10628.2.0 (MSIX/Windows Store) — this is NOT Claude Code CLI, this is the Desktop app
Platform
Other
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
System: ASUS ROG STRIX B550-F GAMING, AMD Ryzen 7 3700X, AMD Radeon RX 9060 XT (RDNA 4), Windows 11 Home 10.0.26200
This bug affects multiple GPU vendors (AMD, NVIDIA, Intel, Apple Silicon) and has been reported in locked issues #45031, #25801, #56805, #38014, and #21803. A Disable Hardware Acceleration toggle in Settings would fix this for everyone.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗