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/util.go:74

}

// do others that not defined in Driver interface

func (d *AliDrive) refreshToken() error {
	url := "https://auth.alipan.com/v2/account/token"
	var resp base.TokenResp
	var e RespErr
	_, err := base.RestyClient.R().
		//ForceContentType("application/json").
		SetBody(base.Json{"refresh_token": d.RefreshToken, "grant_type": "refresh_token"}).
		SetResult(&resp).
		SetError(&e).
		Post(url)
	if err != nil {
		return err
	}
	if e.Code != "" {
		return fmt.Errorf("failed to refresh token: %s", e.Message)
	}
	if resp.RefreshToken == "" {
		return errors.New("failed to refresh token: refresh token is empty")
	}
	d.RefreshToken, d.AccessToken = resp.RefreshToken, resp.AccessToken
	op.MustSaveDriverStorage(d)
	return nil
}

func (d *AliDrive) request(url, method string, callback base.ReqCallback, resp interface{}) ([]byte, error, RespErr) {
	req := base.RestyClient.R()
	state, ok := global.Load(d.UserID)
	if !ok {
		if url == "https://api.alipan.com/v2/user/get" {
			state = &State{}
		} else {
			return nil, fmt.Errorf("can't load user state, user_id: %s", d.UserID), RespErr{}
		}

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/util.go:74 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/2d897f0380445a9b. Report an issue: GitHub.