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
- Open the share URL in a browser to confirm it is still valid and does not need a password
- Fix the surl value in the storage config (the code after the '1' prefix in the link)
- Slow down requests / change IP if the body shows rate-limit errno
- 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
- Open the share URL in a browser before configuring the mount
- Re-check the surl value (short code after /s/1) for typos
- Rate-limit share-info calls from one IP; Baidu throttles aggressively
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.