matryer/xbar · error

get latest release

Error message

get latest release

What it means

Raised in Updater.getLatestRelease when the HTTP GET against u.LatestReleaseGitHubEndpoint (the GitHub releases endpoint) fails at the transport level — DNS failure, no network, TLS error, timeout — so the latest release metadata cannot be fetched and update detection (Update/HasUpdate) cannot proceed.

Source

Thrown at pkg/update/update.go:117

	err = cmd.Start()
	if err != nil {
		if exitErr, ok := err.(*exec.ExitError); ok {
			return errors.Wrapf(err, "starting new app failed: exit code %d", exitErr.ExitCode())
		}
		return errors.Wrap(err, "starting new app failed")
	}
	log.Println("waiting before terminating after update...")
	time.Sleep(1 * time.Second)
	log.Println("terminating after update.")
	os.Exit(0)
	return nil
}

// getLatestRelease gets the latest release.
func (u *Updater) getLatestRelease() (*Release, error) {
	resp, err := u.Client.Get(u.LatestReleaseGitHubEndpoint)
	if err != nil {
		return nil, errors.Wrap(err, "get latest release")
	}
	defer resp.Body.Close()
	if resp.StatusCode != http.StatusOK {
		return nil, errors.Errorf("failed to check for updates: got %s", resp.Status)
	}
	b, err := io.ReadAll(io.LimitReader(resp.Body, u.DownloadBytesLimit))
	if err != nil {
		return nil, errors.Wrap(err, "read body")
	}
	var latestRelease Release
	err = json.Unmarshal(b, &latestRelease)
	if err != nil {
		return nil, errors.Wrap(err, "marshal")
	}
	latestRelease.CreatedAt, err = time.Parse(time.RFC3339Nano, latestRelease.CreatedAtString)
	if err != nil {
		return nil, errors.Wrap(err, "time.Parse: created_at")
	}

View on GitHub (pinned to d624239058)

Solutions

  1. Verify network connectivity and that the machine can reach the GitHub API endpoint
  2. Check the configured LatestReleaseGitHubEndpoint URL for typos or a moved repository
  3. Retry the request with backoff, since transient network failures are common
  4. Check for proxy/firewall or DNS issues on the user's machine
  5. Surface a non-fatal 'update check failed' state so the app continues running the current version
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/update/update.go:117 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of matryer/xbar@d624239058 (2026-09-02). Data as JSON: /api/errors/d82f8f262c4df33e. Report an issue: GitHub.