Auto-updater: infinite retry loop (no backoff) + Electron-only ERR_CONNECTION_CLOSED on Windows

Resolved 💬 1 comment Opened Jun 26, 2026 by koheiist Closed Jun 26, 2026

Summary

Two related issues with the auto-updater on Windows:

  1. No backoff on retry: When the update check fails, the updater retries immediately and continuously without exponential backoff. This causes high CPU usage and log spam.
  1. Electron-only ERR_CONNECTION_CLOSED: The update endpoint is reachable via curl and node https.get(), but Electron's Chromium network stack receives ERR_CONNECTION_CLOSED (net_error). Other tools connecting to the same host succeed, so this appears to be specific to Electron's TLS/net implementation.

Environment

  • OS: Windows 11 Pro 10.0.26200
  • Claude Code: latest (npm install -g @anthropic-ai/claude-code)
  • Shell: PowerShell 5.1

Steps to Reproduce

  1. Install Claude Code on Windows
  2. Set autoUpdatesChannel: latest in ~/.claude/settings.json
  3. Launch Claude Code
  4. Observe: auto-updater enters an infinite retry loop with no delay between attempts

Evidence

  • curl https://update.anthropic.com/... 窶・SSL OK, HTTP 400 (device_id required 窶・expected)
  • node -e require('https').get('https://update.anthropic.com/...') 窶・SSL OK, HTTP 400
  • Electron network stack 窶・ERR_CONNECTION_CLOSED / net_error

The fact that curl and Node.js both succeed rules out a network-level or TLS configuration issue. The failure is isolated to Electron's Chromium net stack.

Workaround

Removing autoUpdatesChannel from ~/.claude/settings.json stops the infinite loop.

Expected Behavior

  1. Retry with exponential backoff (e.g., 1s -> 2s -> 4s -> ... capped at ~5 min)
  2. Investigate why Electron's net stack fails when Node.js succeeds for the same endpoint on Windows

View original on GitHub ↗

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