AlistGo/alist · error

%s; %s;

Error message

 %s; %s; 

What it means

Generic failure wrapper in BaiduShare.Init (drivers/baidu_share/driver.go:73): the share/wxlist call either returned a non-2xx status or errno != 0, and the driver reports the raw status plus body (' %s; %s; '). Init extracts root/seckey/shareid/uk from this response, so failure here means the share metadata could not be loaded at all.

Source

Thrown at drivers/baidu_share/driver.go:73

			Seckey  string      `json:"seckey"`
		} `json:"data"`
	}{}
	resp, err := d.client.R().
		SetBody(url.Values{
			"pwd":      {d.Pwd},
			"root":     {"1"},
			"shorturl": {d.Surl},
		}.Encode()).
		SetResult(&respJson).
		Post("share/wxlist?channel=weixin&version=2.2.2&clienttype=25&web=1")
	if err == nil {
		if resp.IsSuccess() && respJson.Errno == 0 {
			d.info.Root = path.Dir(respJson.Data.List[0].Path)
			d.info.Seckey = respJson.Data.Seckey
			d.info.Shareid = respJson.Data.Shareid.String()
			d.info.Uk = respJson.Data.Uk.String()
		} else {
			err = fmt.Errorf(" %s; %s; ", resp.Status(), resp.Body())
		}
	}
	return err
}

func (d *BaiduShare) Drop(ctx context.Context) error {
	return nil
}

func (d *BaiduShare) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
	// TODO return the files list, required
	reqDir := dir.GetPath()
	isRoot := "0"
	if reqDir == d.RootFolderPath {
		reqDir = path.Join(d.info.Root, reqDir)
	}
	if reqDir == d.info.Root {
		isRoot = "1"

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Open the share URL in a browser to confirm it is still valid and does not need a password
  2. Fix the surl value in the storage config (the code after the '1' prefix in the link)
  3. Slow down requests / change IP if the body shows rate-limit errno
  4. Include the response body text when reporting: it contains the errno that pinpoints the cause
Defensive patterns

Strategy: validation

Validate before calling

// before mounting, confirm the share is live and extract surl correctly
// share link https://pan.baidu.com/s/1AbCdEf -> surl is "AbCdEf" (drop the leading "1")
if !strings.HasPrefix(surl, "") || len(surl) < 4 {
    return fmt.Errorf("invalid baidu share surl")
}

Try / catch

err := d.Init(ctx)
if err != nil && strings.Contains(err.Error(), ";") {
    // error text is "status; body;" — surface the body so the errno is visible
    return fmt.Errorf("baidu share init failed (check link validity/expiry): %w", err)
}

Prevention

When it happens

Trigger: Mounting a BaiduShare storage whose surl is wrong/deleted/expired; rate limiting (errno 2) from too many share-info requests; share requiring a password not yet handled; WeChat-channel endpoint blocked.

Common situations: Typo in the share short URL; the share owner cancelled the share; hitting Baidu's anti-crawl limits from one IP; expired share links older than the retention window.

Related errors


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