You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Desktop/Server: Auto-updater and models.dev fetch lack network resilience (excessive errors in restricted networks) #35090
No retry — one-shot call, failure is permanent until app restart
No local cache — previously fetched model list is never persisted
No fallback — no bundled default model list for cold start
No mirror — no alternative endpoint if primary is unreachable
Shared root cause
Both the updater and model fetch assume global unrestricted Internet access. Their failure handling strategies are designed for "server busy" scenarios, not "network blocked" scenarios common in certain regions.
letfailures=0;asyncfunctioncheckWithBackoff(){if(!awaitnetworkReachable(5000))return;try{awaitupdater.checkForUpdates({timeout: 5000});failures=0;}catch{failures++;constnextInterval=Math.min(Math.pow(2,failures),288)*10*60*1000;// max ~48hif(failures>=3)cooldown(30*60*1000);// circuit breaker}}
P0 — Model fetch 4-layer defense
Local cache: Persist fetched model list to models-cache.json in userData
Online retry: 3 retries with backoff (0s → 5s → 30s) and 5s timeout
Mirror fallback: Try alternative endpoints if primary fails
Bundled defaults: Ship a models.default.json with common models for cold-start offline use
P1 — Proxy awareness
Detect system proxy settings (PAC/HTTP_PROXY env vars) and pass them to electron-updater and fetch calls. Many users in restricted networks rely on HTTP/SOCKS proxies.
P2 — Configurable update interval
Allow users to configure the update check interval or disable auto-updates entirely for offline use, rather than hardcoding 10 minutes.
Your issue adds useful additional framing (auto-updater backoff, circuit breaker, proxy awareness), so it may still be worth keeping open — but consider whether the existing issues cover the core problems before proceeding.
Activity
github-actions commentedon Jul 3, 2026
This issue might be a duplicate of existing issues. Please check:
Your issue adds useful additional framing (auto-updater backoff, circuit breaker, proxy awareness), so it may still be worth keeping open — but consider whether the existing issues cover the core problems before proceeding.
github-actions commentedon Sep 2, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.