XX-net/XX-Net · warning

check_update get version failed. e:%r

Error message

check_update get version failed. e:%r

What it means

check_update wraps update_from_github.get_github_versions() in try/except; any exception while fetching release info from GitHub (network error, DNS, non-200/JSON-decode failure) is logged and the update check silently returns.

Source

Thrown at code/default/launcher/update.py:279

    elif action == "ignore":
        ignore_module(module, new_version)


def check_update():
    try:
        if update_from_github.update_info == "dont-check":
            return

        # check_push_update()  # server broken

        update_rule = config.check_update
        if update_rule not in ("stable", "notice-stable", "test", "notice-test"):
            return

        try:
            versions = update_from_github.get_github_versions()
        except Exception as e:
            xlog.warn("check_update get version failed. e:%r", e)
            return

        current_version = update_from_github.current_version()
        test_version, stable_version = versions[0][1], versions[1][1]
        if test_version != config.skip_test_version:
            if update_rule == "notice-test":
                if compare_versions(current_version, test_version) < 0:
                    xlog.info("checked new test version %s", test_version)
                    update_from_github.update_info = '{"type":"test", "version":"%s"}' % test_version
            elif update_rule == "test":
                if compare_versions(current_version, test_version) < 0:
                    xlog.info("update to test version %s", test_version)
                    update_from_github.update_version(test_version)
        if stable_version != config.skip_stable_version:
            if update_rule == "notice-stable":
                if compare_versions(current_version, stable_version) < 0:
                    xlog.info("checked new stable version %s", stable_version)
                    update_from_github.update_info = '{"type":"stable", "version":"%s"}' % stable_version

View on GitHub (pinned to cfa5bc17b6)

Solutions

  1. Verify connectivity to api.github.com / github.com from the machine (curl -I https://github.com)
  2. Configure a working proxy for the launcher (often required where GitHub is blocked) and retry check update
  3. If behind rate limits, wait and retry later
  4. Update the launcher, since manifest/API format changes are fixed in newer versions
Defensive patterns

Strategy: try-catch

Validate before calling

def github_reachable(timeout=10):
    import urllib.request
    try:
        urllib.request.urlopen('https://github.com', timeout=timeout)
        return True
    except Exception:
        return False

Try / catch

try:
    versions = get_github_versions()
except Exception as e:
    log.warning('check_update failed: %r', e)
    return None  # degrade gracefully, retry next cycle

Prevention

When it happens

Trigger: check_update called from update_check_loop, req_update_handler, or on_check_update when get_github_versions raises — typically an API request to github.com failing or returning unexpected content.

Common situations: GitHub unreachable from the user's region/network; TLS interception; GitHub API rate limiting or schema change breaking parsing; missing network before the proxy is up.

Related errors


AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27). Data as JSON: /api/errors/ecd399ad1b82e702. Report an issue: GitHub.