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
| Environment | Notes |
|---|---|
| Direct CN connection | Asset download drops frequently; gh-proxy prefix |
| Campus/home broadband | Retry off-peak or via proxy |
| Large asset (31MB binary) | Must verify the size after download |
| Stable proxy available | Direct 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
- gh-proxy prefix:
https://gh-proxy.com/https://github.com/<owner>/<repo>/releases/download/<tag>/<asset>(measured in seconds on 2026-08-28). - Or switch network / proxy and retry off-peak.
- Verify after download:
du -hagainst 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-switchSource & evidence
← Sessions & Memory domain | Problem Catalog Experience | Facing another issue? Go to the Helpdesk