AlistGo/alist · error

failed to refresh token: %s

Error message

failed to refresh token: %s

What it means

Error "failed to refresh token: %s" thrown in AlistGo/alist.

Source

Thrown at drivers/aliyundrive_open/util.go:78

		SetResult(&resp).
		SetError(&e).
		SetQueryParams(map[string]string{
			"refresh_ui": d.RefreshToken,
			"server_use": "true",
			"driver_txt": "alicloud_qr",
		}).
		Get(d.OauthTokenURL)
	if err != nil {
		return "", "", err
	}
	if resp.RefreshToken != "" && resp.AccessToken != "" {
		return resp.RefreshToken, resp.AccessToken, nil
	}
	if resp.ErrorMessage != "" {
		if res != nil && res.StatusCode() == http.StatusTooManyRequests {
			return d.refreshTokenWithLegacyFallback(ctx, resp.ErrorMessage, retryAfterFromResponse(res))
		}
		return "", "", fmt.Errorf("failed to refresh token: %s", resp.ErrorMessage)
	}
	if res != nil && res.StatusCode() == http.StatusTooManyRequests {
		return d.refreshTokenWithLegacyFallback(ctx, http.StatusText(http.StatusTooManyRequests), retryAfterFromResponse(res))
	}
	if e.Code != "" || e.Message != "" {
		return d.refreshTokenWithPost(ctx, d.OauthTokenURL)
	}
	return "", "", fmt.Errorf("empty token returned from online API")
}

func (d *AliyundriveOpen) refreshTokenWithLegacyFallback(ctx context.Context, message string, retryAfter time.Duration) (string, string, error) {
	if d.OauthTokenURL != legacyOauthTokenURL {
		log.Warnf("[ali_open] online refresh API is rate-limited, trying legacy fallback: %s", legacyOauthTokenURL)
		if refresh, access, err := d.refreshTokenWithPost(ctx, legacyOauthTokenURL); err == nil {
			return refresh, access, nil
		} else if _, ok := err.(*refreshRateLimitError); !ok {
			return "", "", err
		}

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Re-authenticate the storage: obtain a new refresh_token via the provider's OAuth flow and update the storage configuration.
  2. Verify client_id/client_secret are correct and the refresh token has not been revoked or expired.

When it happens

Trigger: Thrown at drivers/aliyundrive_open/util.go:78 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15). Data as JSON: /api/errors/11ff7a7c52253736. Report an issue: GitHub.