[BUG] Claude Desktop Windows — CSP blocks analytics endpoint, AutoUpdater memory leak, hourly Chrome bridge drops

Resolved 💬 3 comments Opened Feb 11, 2026 by Budgulick Closed Feb 15, 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 for Windows (v1.1.2685) has multiple issues identified through systematic log analysis of claude.ai-web.log and main.log over a 9-day period (Feb 2–11, 2026). This system has experienced 35+ documented session reset incidents since January 6, 2026, and these findings represent likely contributing factors.

Note: This is Claude Desktop (Chat mode), not Claude Code CLI. Filing here as there is no dedicated Claude Desktop repo.

---

Issue 1: Content Security Policy Blocks Anthropic Analytics Endpoint

Severity: Medium
Log: claude.ai-web.log
Timestamp: 06:48:47 UTC, Feb 11

The app attempts to connect to https://a-api.anthropic.com/v1/m for segment performance telemetry, but this domain is not included in the page's CSP connect-src directive. The browser correctly blocks the request, causing a downstream "Error sending segment performance metrics" failure.

Observed CSP connect-src:

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

Missing: https://a-api.anthropic.com (or https://*.anthropic.com)

Expected: The analytics endpoint should either be included in the CSP policy or the app should not attempt the connection.

---

Issue 2: AutoUpdater EventEmitter Memory Leak

Severity: Medium
Log: claude.ai-web.log
Timestamp: 07:05:52 UTC, Feb 11

MaxListenersExceededWarning: Possible EventEmitter memory leak detected.
11 AutoUpdater updaterState store update listeners added.
Use emitter.setMaxListeners() to increase limit

The AutoUpdater state store accumulates event listeners beyond the default limit of 10 without cleaning up previous subscriptions. Observed immediately after an app restart, suggesting listeners are registered during initialization without proper teardown from the prior session.

Over extended uptime, unbounded listener accumulation degrades performance and may contribute to the request timeout conditions observed before session resets (message_store_sync_lossFailed all attempts to invalidate conversation tree).

---

Issue 3: Chrome Bridge Hourly WebSocket Drops

Severity: Low
Log: main.log
Timestamps: 04:57, 05:58, 06:58 UTC, Feb 11 (approximately hourly)

The Claude in Chrome bridge WebSocket connection drops with close code 1006 (abnormal closure) on a ~60-minute cycle:

  • Connection 1: ~100 minutes, close code 1006
  • Connection 2: ~61 minutes, close code 1006
  • Connection 3: ~60 minutes, close code 1006

Each reconnects within 1–2 seconds via fresh OAuth exchange. If a server-side idle timeout is intentional, a keep-alive ping would prevent unnecessary reconnection cycles.

---

Issue 4: EBUSY on Chrome Native Host Binary During Restart

Severity: Low
Log: main.log
Timestamp: 07:05:51 UTC, Feb 11

During app startup, the Chrome Extension MCP module fails to copy the native host binary because the file is still locked by the previous app instance:

[Chrome Extension MCP] Failed to copy native host binary:
Error: EBUSY: resource busy or locked, copyfile
'...\resources\chrome-native-host.exe' ->
'...\ChromeNativeHost\chrome-native-host.exe'

The app recovers (existing binary works, native host registrations succeed), but a retry-with-backoff strategy would eliminate this startup error.

What Should Happen?

  1. CSP: The a-api.anthropic.com domain should be included in the CSP connect-src directive so analytics calls succeed, or the app should not attempt connections to unlisted domains.
  1. AutoUpdater: Event listeners on the updater state store should be properly cleaned up during app shutdown/restart to prevent accumulation beyond the default MaxListeners limit.
  1. Chrome Bridge: The WebSocket connection to Claude in Chrome should persist without hourly drops. If a server-side idle timeout exists, a keep-alive mechanism should maintain the connection.
  1. EBUSY: The native host binary copy should use retry-with-backoff to handle file lock contention during rapid restart cycles.

Error Messages/Logs

CSP Violation (claude.ai-web.log):
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 sending segment performance metrics: TypeError: Failed to fetch

AutoUpdater Leak (claude.ai-web.log):
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 AutoUpdater updaterState store update listeners added. Use emitter.setMaxListeners() to increase limit

Chrome Bridge Drops (main.log, hourly pattern):
[Chrome Extension MCP] Bridge WebSocket closed: code=1006, reason=
[Chrome Extension MCP] Attempting to reconnect bridge WebSocket...
[Chrome Extension MCP] Bridge WebSocket reconnected successfully

EBUSY (main.log):
[Chrome Extension MCP] Failed to copy native host binary: Error: EBUSY: resource busy or locked, copyfile '...\resources\chrome-native-host.exe' -> '...\ChromeNativeHost\chrome-native-host.exe'

Steps to Reproduce

These issues were identified through systematic log analysis, not a single reproducible action. To observe:

  1. Install Claude Desktop for Windows (v1.1.2685 or later)
  2. Enable and connect Claude in Chrome extension
  3. Use the app normally for several hours in Chat mode
  4. Check %AppData%\Claude\logs\claude.ai-web.log for CSP violations and MaxListeners warnings
  5. Check %AppData%\Claude\logs\main.log for Chrome bridge WebSocket disconnections (hourly pattern)
  6. Restart the app and check main.log for EBUSY errors on chrome-native-host.exe

CSP issue is 100% reproducible — occurs on every app launch when segment telemetry fires.
AutoUpdater leak is reproducible after any app restart.
Chrome bridge drops occur on an approximately 60-minute cycle while the extension is connected.
EBUSY occurs during rapid restart when the previous process hasn't fully released file handles.

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

Claude Desktop 1.1.2685 (not Claude Code CLI)

Platform

Other

Operating System

Windows

Terminal/Shell

Other

Additional Information

Environment:

  • Claude Desktop v1.1.2685 (Windows, Electron)
  • Windows 10.0.26200 (Windows 11 Insider)
  • Node.js 22.22.0 (bundled with Electron)
  • AMD RYZEN AI MAX+ PRO 395, 128GB RAM
  • Satellite internet connection (higher latency than typical broadband)
  • Claude in Chrome extension active

Context:

  • This system has experienced 35+ documented session reset incidents since January 6, 2026
  • Session resets follow a pattern: message_store_sync_lossFailed all attempts to invalidate conversation tree → full context loss
  • These 4 issues were identified through systematic log analysis as potential contributing factors to the session reset pattern
  • An active support case exists with Anthropic Product Support regarding the session resets
  • Filing here for engineering visibility since no dedicated Claude Desktop issue tracker exists

Note: This is a Claude Desktop (Chat mode) report, not Claude Code CLI. "Platform: Other" and "Terminal/Shell: Other" are selected because this is the Electron desktop app, not a CLI tool. Filed here per the guidance that all Claude Desktop issues go to this repo.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗