[BUG] Claude Desktop shows black/blank window on restore (Windows) - React #418 still occurring on v1.1.2156 Body:

Resolved 💬 16 comments Opened Feb 6, 2026 by garethsquance-ux Closed May 27, 2026

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?

Description

Claude Desktop frequently shows a completely black/blank window when clicking the app
from the taskbar or restoring it after it's been in the background. The only reliable way
to get the UI to render is to launch the app fresh from the .exe file.

This has been happening consistently for weeks across multiple versions, and is still
present on the latest version (1.1.2156).

Environment

  • App version: 1.1.2156 (also occurred on 1.1.1200 / 1.1.351)
  • OS: Windows 11 (build 26200)
  • CPU: AMD Ryzen 9 9950X3D
  • RAM: 128GB
  • Claude Code version: 2.1.32

Steps to Reproduce

  1. Open Claude Desktop normally
  2. Use the app for a while, or minimize / switch to another window
  3. Click the Claude icon on the taskbar to restore the window
  4. Window appears completely black — no UI renders

Re-launching from the .exe creates a fresh window that works fine, confirming
the issue is with window restoration, not the app failing to start.

Root Cause (from logs)

The unknown-window.log shows a React hydration error (#418) firing on
nearly every app restore/wake, followed immediately by an EventEmitter memory leak
on the AutoUpdater state store. These errors have been occurring daily since at
least January 18, 2026:

What Should Happen?

When clicking the Claude Desktop icon on the taskbar or restoring the window
from the background, the app should render the UI immediately without a
black/blank screen. The window should reliably restore to its previous state
with the conversation visible, regardless of how long the app has been
minimized or in the background.

What actually happens The window restores but shows a completely black/blank screen. The app process
is running but no UI renders. The only workaround is to fully quit and relaunch
from the .exe file. This happens on the majority of restore attempts,
particularly after the app has been running for a while.

Error Messages/Logs

# From unknown-window.log (recurring on every restore/wake):

[error] Uncaught Error: Minified React error #418; visit https://react.dev/errors/418?args[]=HTML&args[]= for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

[warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$_..._$_claude.web_$_AutoUpdater_$_updaterState_$store$_update listeners added. Use emitter.setMaxListeners() to increase limit

[error] Refused to connect to 'https://a-api.anthropic.com/v1/m' because it violates the following Content Security Policy directive: "connect-src 'self' https://api.segment.io https://*.segment.io https://*.segment.com https://a-cdn.anthropic.com https://*.google.com https://*.facebook.com https://*.facebook.net https://*.doubleclick.net".

[error] Fetch API cannot load https://a-api.anthropic.com/v1/m. Refused to connect because it violates the document's Content Security Policy.

[error] Error sending segment performance metrics TypeError: Failed to fetch

# From main.log (on fresh launch after cache clear, errors returned within minutes):

[error] [REACT_QUERY_CLIENT] QueryClient error: Error: ["account_profile"] data is undefined
[error] ERROR [Statsig] Failed to parse EvaluationResponse

# Timeline showing the error occurs on nearly every startup/restore:
# 2026-01-19, 01-22, 01-23, 01-24, 01-25 (x2), 01-27, 01-28, 01-29, 01-30,
# 02-04, 02-05 (x4), 02-06 (x2) — all React #418 + memory leak warnings

Steps to Reproduce

  1. Open Claude Desktop on Windows (v1.1.2156)
  2. Use the app normally for any period of time (even a few minutes is enough)
  3. Switch to another application, or minimize Claude to the taskbar
  4. Click the Claude Desktop icon on the taskbar to restore the window
  5. Window appears completely black/blank — no UI content renders

Notes:

  • Happens on the majority of restore attempts, not 100% but very frequent
  • More likely to occur the longer the app has been running
  • Launching fresh from the .exe file always works — the issue is specifically

with restoring an existing window

  • Clearing all app caches allows one clean launch, but the React #418 error

returns within minutes and the black window comes back on next restore

  • Occurs with and without MCP servers connected

Claude Model

Not sure / Multiple models

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.32

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

System Specs

  • Windows 11 Build 26200
  • AMD Ryzen 9 9950X3D 16-Core Processor
  • 128GB RAM
  • App version: 1.1.2156 (previously 1.1.1200 and 1.1.351)
  • Claude Code: 2.1.32
  • Node: 22.21.1 (bundled with app)

Troubleshooting Already Attempted

Full cache clear of the following folders with no lasting fix:

  • Cache, Code Cache, GPUCache, DawnGraphiteCache, DawnWebGPUCache
  • Session Storage, Local Storage, blob_storage
  • window-state.json, Local State, Preferences
  • Removed stale app version (app-1.1.1200)

A clean launch succeeds after cache clear, but the React #418 hydration
error returns within minutes and the black window issue resumes on next
window restore.

Key Observations

  • The React #418 error fires on nearly every window restore/wake — logged

almost daily from Jan 18 to Feb 6 (3 weeks of data)

  • Always accompanied by EventEmitter memory leak warnings on the

AutoUpdater state store (listeners never cleaned up)

  • The CSP misconfiguration blocking a-api.anthropic.com/v1/m appears to

be the app's own analytics endpoint blocked by its own policy

  • Issue persists across app versions (1.1.351 → 1.1.1200 → 1.1.2156)
  • Launching from the .exe always works — only restoring an existing

window triggers the black screen

Related Closed Issues

  • #3592 (Blank screen on minimize - Windows)
  • #2230 (Blank screen with MCP tools)
  • #10995 (React hydration error #418)
  • #11093 (React error #418 duplicate)

All closed but the underlying problem remains on the latest Windows build.

View original on GitHub ↗

16 Comments

jaried · 5 months ago

Additional info: The black screen issue was NOT present in version 2.1.32, but it returned in version 2.1.33. This confirms it's a regression introduced between these two versions.

pedroreis81 · 5 months ago

Sames issue here

tpabla · 5 months ago

this also happens on mac, and has been an ongoing issue for me for a while, when restarting or updating the page will be blank until resize.

mmgeorge · 4 months ago

Happening for me as well

sstklen · 4 months ago

Hey! I ran into a similar pattern in our bug knowledge base and thought this might help.

What's happening: React hydration error #418 occurs because when the Electron window is restored from minimized/background state, the renderer process attempts to rehydrate against stale or empty DOM content. The server-rendered HTML (or previously rendered snapshot) no longer matches the client-side React tree, causing React to bail out of hydration entirely and leaving a blank screen. This is a regression introduced in v2.1.33, likely due to a change in how the Electron BrowserWindow handles visibility restoration — the renderer process may be getting suspended/discarded by Chromium's degreeOfParallelism or background throttling, and the restore path does not trigger a full re-render.

What worked for us:

The Electron renderer needs to detect window restore/visibility-change events and force a full React re-mount instead of attempting hydration against stale DOM. Two approaches: (1) Listen for the 'show' or 'restore' event on BrowserWindow and send an IPC message to the renderer to call root.render() instead of hydrateRoot(), or (2) Add a document visibilitychange listener in the React entry point that forces unmount+remount when the page transitions from hidden to visible with a stale DOM.

Steps:

  1. In the Electron main process, add listeners for BrowserWindow 'restore' and 'show' events that send an IPC message (e.g., 'force-rerender') to the renderer
  2. In the React entry point (renderer), listen for the 'force-rerender' IPC message and call root.unmount() followed by root = createRoot(container); root.render(<App />) to bypass hydration
  3. As a safety net, add a document.addEventListener('visibilitychange') handler that checks if document.visibilityState === 'visible' and the DOM container is empty/blank, then trigger the same re-mount logic
  4. Consider setting BrowserWindow option backgroundThrottling: false to prevent Chromium from aggressively suspending the renderer process when minimized
  5. Investigate what changed between v2.1.32 and v2.1.33 — likely a React upgrade from renderToString to server components, or a change in the Electron BrowserWindow webPreferences that enabled more aggressive background throttling
// Main process (main.ts)
mainWindow.on('restore', () => {
  mainWindow.webContents.send('force-rerender');
});
mainWindow.on('show', () => {
  mainWindow.webContents.send('force-rerender');
});

// Renderer entry (index.tsx)
import { ipcRenderer } from 'electron';

let root = hydrateRoot(container, <App />);

ipcRenderer.on('force-rerender', () => {
  root.unmount();
  root = createRoot(container);
  root.render(<App />);
});

// Fallback: visibilitychange listener
document.addEventListener('visibilitychange', () => {
  if (document.visibilityState === 'visible' && container.childElementCount === 0) {
    root.unmount();
    root = createRoot(container);
    root.render(<App />);
  }
});

// BrowserWindow options — prevent renderer suspension
const mainWindow = new BrowserWindow({
  backgroundThrottling: false,
  // ... other options
});

📊 _We found 1 similar case in our knowledge base with the same pattern — this gives us medium confidence in this analysis._

Hope this helps! Let me know if it doesn't match your case — happy to dig deeper. 🦞

_Disclosure: This analysis is from Confucius Debug, an AI-powered community KB for agent bugs. Please verify before applying._

---
<sub>🦞 Confucius Debug — community knowledge base for AI agent bugs. Free to search via MCP.</sub>

eleach1-cpu · 4 months ago

Same issue, window resizing seems to fix it, but still a pain!

garethsquance-ux · 4 months ago

Yeah. I came across the resizing by chance earlier 🤣Gareth SquanceTel: 07725342886On Mar 15, 2026, at 17:03, eleach1-cpu @.***> wrote:eleach1-cpu left a comment (anthropics/claude-code#23637)
Same issue, window resizing seems to fix it, but still a pain!

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

eleach1-cpu · 4 months ago

Claude actually suggested I try the windows resize “fix” among many other suggestions. It the only suggestion that worked beyond going into task manager and killing all Claude processes and relaunching Claude….. ironic.

OldSchoolProgramming · 3 months ago

The quickest solution I have found is to maximize and then unmaximize the blank window. That is better than having to end the task and relaunch multiple times a day.

DragonbornElric · 3 months ago

Confirmed workaround + root cause theory — 36+ hours stable on Windows (MSIX)

Environment

  • Windows 11 Home (Build 26220), MSIX install (Microsoft Store)
  • Tested across versions 1.1.8359 → 1.1.8629 (survived auto-update)

---

Root cause theory

The blank screen on minimize/restore appears to be caused by stale Electron renderer caches surviving across auto-updates. When Claude Desktop updates via MSIX, new app code is written to WindowsApps\ but the old compiled renderer caches in LocalCache\Roaming\Claude\ are left untouched. Newer React/Chromium hydration code is stricter about mismatched cached state — on restore from minimized, the renderer tries to hydrate against stale cached DOM and fails, producing a blank window instead of a graceful fallback.

Evidence:

  • Confirmed that 1.1.8629 does not clear caches on update (verified by checking file timestamps immediately after the update relaunch)
  • Blank screen consistently reproduced after minimize/restore
  • Clearing the 6 Electron cache directories and relaunching resolves it immediately
  • 36+ hours stable with no blank screen occurrences after adopting clean launch

This is standard practice for Electron apps (VS Code, Discord, Slack all invalidate caches on version change). A version stamp check on startup would be a one-line fix:

if (storedVersion !== currentVersion) {
  clearRendererCaches();
  writeVersionStamp(currentVersion);
}

---

Workaround — Clean Launch Script (Windows MSIX)

Save as a .bat file and use it to launch Claude Desktop instead of the normal shortcut. Can be pinned to the taskbar via a .lnk shortcut pointing to cmd.exe.

Note: Your package ID (Claude_pzs8sxrjxfjjc) should be the same for all MSIX installs — it's Anthropic's publisher hash. Verify with: dir "%LOCALAPPDATA%\Packages" | findstr Claude
@echo off
title Claude Desktop - Clean Launch

:: Kill only Claude Desktop (not Claude Code in VSCode which shares the same exe name)
powershell -NoProfile -Command "Get-Process Claude -ErrorAction SilentlyContinue | Where-Object { $_.Path -like '*WindowsApps*' } | Stop-Process -Force" >nul 2>&1
timeout /t 2 /nobreak >nul

:: Cache location for MSIX install
set "CACHE=%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude"

:: Clear Electron renderer caches (login, conversations, and settings are NOT affected)
if exist "%CACHE%\Cache"              rd /s /q "%CACHE%\Cache"
if exist "%CACHE%\Code Cache"         rd /s /q "%CACHE%\Code Cache"
if exist "%CACHE%\GPUCache"           rd /s /q "%CACHE%\GPUCache"
if exist "%CACHE%\DawnGraphiteCache"  rd /s /q "%CACHE%\DawnGraphiteCache"
if exist "%CACHE%\DawnWebGPUCache"    rd /s /q "%CACHE%\DawnWebGPUCache"
if exist "%CACHE%\Session Storage"    rd /s /q "%CACHE%\Session Storage"

:: Relaunch Claude Desktop
start "" "shell:AppsFolder\Claude_pzs8sxrjxfjjc!Claude"

What's safe to clear: These are all auto-regenerated Chromium caches. Your conversations are stored server-side, and login/settings live in Local Storage and IndexedDB which are not touched.

The process kill is targeted — filters by *WindowsApps* path so it won't accidentally kill Claude Code running in VSCode, which shares the same executable name.

---

Diagnosed and fixed in ~30 minutes using Claude Code (Sonnet 4.6) in VSCode. Feels appropriate.

DragonbornElric · 3 months ago

Follow-up: Reproduced again on 1.1.9310 update + cache verification data

Just received auto-update from 1.1.8629 → 1.1.9310. White screen on unminimize immediately after the background update — couldn't even see the "Relaunch to apply" button without the blank screen appearing first. Running clean for days with zero blank screen occurrences until the background auto-update triggered it immediately on the next unminimize.

Verified caches are never cleared in any of these scenarios:

  1. Background auto-update install
  2. Clicking the "Relaunch to apply" button
  3. Normal app close/reopen

Cache timestamp comparison after 1.1.9310 update:

| Launch method | Oldest cache file | Stale cache? |
|---|---|---|
| Anthropic's "Relaunch to apply" button | Mar 27 13:11 (4+ hours old) | Yes — old cached state carried over |
| Clean launch script (clears caches first) | Mar 27 17:25 (fresh) | No — everything regenerated |

That's three consecutive updates (1.1.8359 → 1.1.8629 → 1.1.9310) confirmed not invalidating renderer caches on version change. The clean launch workaround from my previous comment continues to resolve it every time.

The fix on Anthropic's side should be straightforward — clear Cache, Code Cache, GPUCache, DawnGraphiteCache, DawnWebGPUCache, and Session Storage during the relaunch-after-update path. These are all auto-regenerated Chromium caches that add ~200ms to first paint.

DragonbornElric · 3 months ago

Update (April 1, 2026): Fifth consecutive update confirms caches never cleared

1.2.234 deployed today. Same result:

  • Cache oldest files still from last clean launch (11:28), not cleared by the update or Anthropic's relaunch button
  • White screen immediately on their relaunch — had to resize the window to recover
  • Clean launch script (clears caches first) continues to work perfectly — zero blank screens when using it

That's now five consecutive updates (1.1.8359 → 1.1.8629 → 1.1.9310 → 1.1.9493 → 1.2.234) all confirmed not invalidating renderer caches. The relaunch-after-update path has never once cleared them.

Running clean for over a week now using the workaround script from my original comment. No blank screens except when using Anthropic's own relaunch.

kvinstar · 3 months ago

When solving this window related issue in claude code, claude code couldn't help me)

emodulorwork · 3 months ago

As soon as i open claude on windows 11 (nvidia 3080OC), the rest of my desktop flickers (slightly reduced brightness which follows a predictable pattern)

GenNic89 · 2 months ago

+1

github-actions[bot] · 1 month ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.