Troubleshooting

Clash Verge Update Check Failed / In-App Update Won’t Finish

“Check for updates failed,” “download failed,” or a spinner that never ends does not mean Clash Verge Rev is dead. More often the updater channel is blocked, the old install is half-broken, write rights to the install folder are missing, or you are already on the latest stable while the check endpoint times out. Split check failure, download failure, and install/replace failure before you delete configs.

Subscription refresh is a different pipeline: subscription update failed. This page is only about app version updates. Prefer verifiable packages from the download center. New installs: getting started.

The three failure kinds at a glance

Stage What you see Usually caused by
Check "Check for updates failed" Can't reach update metadata; proxy/DNS/firewall; or already current but endpoint timed out
Download "Download failed" after a build is found Full disk, AV quarantine, mid-transfer proxy drop
Install Package landed, replace won't finish No write rights, old process holds files, SmartScreen/AV blocks new binary

Three failure kinds—keep subscriptions separate

Check failed: the client cannot reach update metadata or GitHub Releases-style sources. Network, DNS, the proxy itself, or a corporate firewall can cause it. If the version is already current, a timeout may still show failure—compare against the download center and ignore the toast if needed. Do not reset for that alone.

Download failed: a newer build was found, but the package is incomplete or fails verification. Full disks, AV quarantine, and mid-transfer proxy drops are common.

Install/replace failed: the file landed, but the install folder will not accept writes, an old process still holds files, or SmartScreen / AV blocks the new binary. Windows prompts: SmartScreen and admin. Subscription updates working while app updates fail means the channels are independent—do not treat airport issues as a broken client, and do not wipe subscriptions because the updater blinked.

Recommended order: check → channel → manual package

  1. Read the version in About / Settings; compare with the download center or Releases. Already latest but still erroring → check-channel timeout; ignore or retry later.
  2. Confirm the proxy roughly works: browser can load pages. A half-dead proxy makes updater checks fail more—fix system proxy or switch nodes first.
  3. Temporarily use Rule + a healthy node, then check again. Still failing → stop hammering in-app update; download a package and cover-install.
  4. Quit the client and end leftover processes before installing so files are not locked. After install, confirm the version string changed.
  5. If behavior is still wrong, reinstall the Windows service for Tun users (Service Mode) or consider a safe reset—not a disk wipe.

Why a manual installer is usually safer

In-app update is a long check → download → replace chain; any blocked hop fails the whole thing. A manual package from the download center means you own download and verification, leaving only replace. On flaky networks, corporate proxies, or intermittent GitHub, that is the default stopgap—treat "Check for updates" as nice-to-have and the download center as the main channel.

Manual updates should not erase user config by default, but they also will not back up subscriptions for you. If you changed Merge / ports, re-check mixed port and mode after big jumps (mixed port, three modes). macOS "damaged" prompts: cannot open. Corporate networks that cannot check updates are normal: compare on phone hotspot, or just download manually—do not misread the firewall as a corrupted client.

Permissions, AV, and leftover processes

Under Program Files, lacking admin rights often looks like "download OK, install fails." Quit Clash, then run the installer elevated. If AV quarantined update temps or the new binary, restore from quarantine, allowlist, retry.

Leftover processes holding old files: end them in Task Manager, then install. Repeated failures with core-communication banners: core communication and logs—confirm you are not chasing a half-applied update that damaged core files. Fake "update failed" right after wake can be a cold network stack—recover via sleep/wake before checking again.

Acceptance—and when to stop clicking Check

Stop when you can state the current version, a manual package opens cleanly, and subscriptions plus system proxy or Tun still behave as before. Long-term in-app updater failure with healthy manual installs is acceptable—do not wipe config for that.

Before/after notes help: old version, new version, mixed port, Tun on/off. When something breaks you can answer whether the update introduced it or sleep/subscription already did. People mash those three together and delete configs by mistake.

If config vanishes after a manual install, you likely landed in another user profile or hit reset by accident—re-import from backup (backup/migrate, config location). Three in-app failures in one week with a solid manual package means switch to the manual channel and stop. Index: common errors. Clean builds: download center.

Trust verifiable installers over the updater

In-app update is a shortcut. When versions disagree or checks keep failing, install the current stable build from the download center.