Sessions & Memory · recorded 2026-08-29 · applies to 1 tool(s) ✓ Verified

Problem: GitHub Release download TLS drop / timeout —— Trove problem library

Verified 2026-08-29GitHub Release TLS drop/timeout — prefix the URL with gh-proxy; 13.5MB downloaded in seconds in local tests; drop the prefix if the mirror is down.

Quick fix

# One-liner: gh-proxy prefix speeds up the download (13.5MB measured in seconds)
curl -L -o cc-switch.deb "https://gh-proxy.com/https://github.com/<owner>/<repo>/releases/download/<tag>/<asset>"

What you will run into

Downloading cc-switch's deb/AppImage from GitHub Releases keeps dropping (TLS/connection reset) - even a 13.5MB package won't finish.

You think it's a network issue and retry - direct access to GitHub release assets from CN is unstable as a rule, and prepending gh-proxy is the easiest fix.

Why this happens

GitHub Release assets are actually hosted on objects.githubusercontent.com, which is unstable on direct CN connections; large transfers drop mid-way.

The GitHub webpage/API may open fine, but asset downloads are a different path with completely different behavior.

The key mental model: "the webpage opens ≠ the download works".

GitHub's web pages, API and Release assets live on different domains/CDNs — pages/API on github.com, while Release binaries are actually served from objects.githubusercontent.com, so their in-CN behavior is completely different.

Downloads are long-lived, high-bandwidth transfers: when a connection drops mid-way, the TLS handshake already succeeded, so it shows up as "connected then dropped" rather than "cannot connect".

gh-proxy works because it replaces the fragile leg — your direct cross-border connection to GitHub — with "a reachable proxy server, which talks to GitHub over a stable international link".

Verifying a complete download also has a fixed order: du -h against the asset-page size first (much smaller = half-downloaded), then dpkg-deb -I to confirm the structure is readable — size matches + structure readable = complete.

Step by step

1. Use the gh-proxy prefix — Required

Prepend https://gh-proxy.com/ to the direct asset URL:

curl -L -o cc-switch.deb "https://gh-proxy.com/https://github.com/<owner>/<repo>/releases/download/<tag>/cc-switch_x86_64.deb"

2. Or switch network / proxy and retry off-peak — Required

Campus network/home broadband are worst on direct connections at peak hours; off-peak or a proxy helps.

3. Verify the download — Required

du -h cc-switch.deb

Compare with the size on the asset page (deb 13.5MB / binary 31MB); much smaller = half-downloaded, re-fetch.

How to confirm it works

dpkg-deb -I cc-switch.deb >/dev/null && echo DEB-OK

The deb structure is readable = complete download (measured: gh-proxy downloaded 13.5MB successfully, structure confirmed exit=0).

Other environments

EnvironmentNotes
Direct CN connectionAsset download drops frequently; gh-proxy prefix
Campus/home broadbandRetry off-peak or via proxy
Large asset (31MB binary)Must verify the size after download
Stable proxy availableDirect works; gh-proxy as fallback

Symptom

Downloading the deb/AppImage from GitHub Releases keeps dropping (TLS/connection reset); a 13.5MB package never finishes.

Cause

Direct CN access to GitHub release assets (objects.githubusercontent.com) is unstable; large transfers drop mid-way.

Solution

  1. gh-proxy prefix: https://gh-proxy.com/https://github.com/<owner>/<repo>/releases/download/<tag>/<asset> (measured in seconds on 2026-08-28).
  2. Or switch network / proxy and retry off-peak.
  3. Verify after download: du -h against the asset-page size (deb 13.5MB / binary 31MB).
Verification Evidence
  • Measured in this marketplace: direct slow; gh-proxy downloaded 13.5MB successfully (structure confirmation + closed-loop log step 1 exit=0).
  • GitHub API direct access works (asset list verified, connectivity record).

Applicable tools (1)

This problem is linked from the tool pages below — reachable from either side.

cc-switch

Source & evidence

Recorded Verified ✓ VerifiedApplies to 1 tool(s)
Entries contain locally measured or reviewable-source solutions; unmeasured items are explicitly labeled.

← Sessions & Memory domain | Problem Catalog Experience | Facing another issue? Go to the Helpdesk