[BUG] Claude Desktop (Windows) crashes when opening generated web page preview — infinite render loop in EpitaxyFramePage + EventEmitter listener leak

Status Open
Maintainer reply None cached
Activity 1 comment · opened Aug 16, 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?

Claude Desktop crashes on Windows specifically when trying to view/preview a web page generated by Claude (artifact preview). The renderer enters an infinite re-render loop in EpitaxyFramePage, accompanied by EventEmitter listener leaks that grow with each render cycle, and the app becomes unresponsive/crashes shortly after.

Log excerpt from %APPDATA%\Claude\logs\main.log:

2026-08-16 16:51:17 [warn] [antalytics] track() called before init(); event dropped (pre-init buffering requires registerPreInitConsent())
2026-08-16 16:51:19 [warn] [LOCAL_SESSION] [RenderLoopDetector] Rapid re-rendering in EpitaxyFramePage: 20 renders in 1000ms {"sessionType":"local"}
2026-08-16 16:51:20 [warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$_1a6a86a9-b6fb-4d64-8e14-a3eb46104c36_$_claude.settings_$_AppPreferences_$_preferencesChanged listeners added. Use emitter.setMaxListeners() to increase limit
2026-08-16 16:58:56 [warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$_1a6a86a9-b6fb-4d64-8e14-a3eb46104c36_$_claude.web_$_Launch_$_activeServers_$store$_update listeners added. Use emitter.setMaxListeners() to increase limit
2026-08-16 16:58:57 [error] Unrecognized Content-Security-Policy directive 'webrtc'.
2026-08-16 16:59:00 [error] Unrecognized Content-Security-Policy directive 'webrtc'.
2026-08-16 16:59:00 [error] Unrecognized Content-Security-Policy directive 'webrtc'.
2026-08-16 16:59:00 [warn] [MCP Apps] oncalltool handler replaced. Previous handler will no longer be called.
2026-08-16 16:59:00 [warn] [MCP] [MCP App: visualize][viz:timing:firstrender][info] {"iframe_ms":15}
2026-08-16 16:59:00 [warn] [MCP] [MCP App: visualize][viz:timing:complete][info] {"iframe_ms":17}

The pattern:

RenderLoopDetector flags EpitaxyFramePage re-rendering 20x within 1000ms.
Each render cycle appears to register new IPC listeners (preferencesChanged, activeServers store update) without cleaning up the old ones — MaxListenersExceededWarning fires repeatedly.
Unrecognized Content-Security-Policy directive 'webrtc' errors fire repeatedly in the same window, likely because the artifact preview iframe re-applies its CSP header on every render pass.
Shortly after, the app becomes unresponsive and crashes.

What Should Happen?

What Should Happen?

Opening a generated web page preview should render once without triggering repeated re-renders, and IPC event listeners should be cleaned up between renders (or deduplicated) rather than accumulating.

Error Messages/Logs

2026-08-16 16:51:17 [warn] [antalytics] track() called before init(); event dropped (pre-init buffering requires registerPreInitConsent())
2026-08-16 16:51:19 [warn] [LOCAL_SESSION] [RenderLoopDetector] Rapid re-rendering in EpitaxyFramePage: 20 renders in 1000ms {"sessionType":"local"}
2026-08-16 16:51:20 [warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$_1a6a86a9-b6fb-4d64-8e14-a3eb46104c36_$_claude.settings_$_AppPreferences_$_preferencesChanged listeners added. Use emitter.setMaxListeners() to increase limit
2026-08-16 16:58:56 [warn] MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$_1a6a86a9-b6fb-4d64-8e14-a3eb46104c36_$_claude.web_$_Launch_$_activeServers_$store$_update listeners added. Use emitter.setMaxListeners() to increase limit
2026-08-16 16:58:57 [error] Unrecognized Content-Security-Policy directive 'webrtc'.
2026-08-16 16:59:00 [error] Unrecognized Content-Security-Policy directive 'webrtc'.
2026-08-16 16:59:00 [error] Unrecognized Content-Security-Policy directive 'webrtc'.
2026-08-16 16:59:00 [warn] [MCP Apps] oncalltool handler replaced. Previous handler will no longer be called.
2026-08-16 16:59:00 [warn] [MCP] [MCP App: visualize][viz:timing:firstrender][info] {"iframe_ms":15}
2026-08-16 16:59:00 [warn] [MCP] [MCP App: visualize][viz:timing:complete][info] {"iframe_ms":17}

Steps to Reproduce

Open Claude Desktop on Windows
Have Claude generate a web page (HTML artifact / MCP visualize widget)
Open/view the generated page preview inside the app
Observe repeated RenderLoopDetector warnings for EpitaxyFramePage in %APPDATA%\Claude\logs\main.log
App becomes unresponsive and crashes shortly after

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Claude 1.30096.5 (6e1346) 2026-08-14T21:58:49.000Z

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Claude Desktop version: Version 1.30096.5 (6e1346)
OS: Windows 10 22H2
GPU: NVIDIA GeForce GTX 960 (581.08)
Installer type: Claude Setup.exe

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗