AlistGo/alist · error
need verify: <a target="_blank" href="%s">Click Here</a>
Error message
need verify: <a target="_blank" href="%s">Click Here</a>
What it means
Returned by the Thunder browser driver's captcha-token endpoint wrapper when the API response contains a non-empty Url field instead of a captcha token. The presence of Url means the account must pass an interactive verification (slide captcha / device check) in a browser before API calls succeed; the error embeds the verification link as an HTML anchor.
Source
Thrown at drivers/thunder_browser/util.go:171
Meta: metas,
RedirectUri: "xlaccsdk01://xunlei.com/callback?state=harbor",
}
var e ErrResp
var resp CaptchaTokenResponse
_, err := c.Request(XLUSER_API_URL+"/shield/captcha/init", http.MethodPost, func(req *resty.Request) {
req.SetError(&e).SetBody(param)
}, &resp)
if err != nil {
return err
}
if e.IsError() {
return &e
}
if resp.Url != "" {
return fmt.Errorf(`need verify: <a target="_blank" href="%s">Click Here</a>`, resp.Url)
}
if resp.CaptchaToken == "" {
return fmt.Errorf("empty captchaToken")
}
if c.refreshCTokenCk != nil {
c.refreshCTokenCk(resp.CaptchaToken)
}
c.SetCaptchaToken(resp.CaptchaToken)
return nil
}
// Request 只有基础信息的请求
func (c *Common) Request(url, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
req := c.client.R().SetHeaders(map[string]string{
"user-agent": c.UserAgent,
"accept": "application/json;charset=UTF-8",View on GitHub (pinned to 843d9dc814)
Solutions
- Open the URL from the error message in a browser (target=_blank link), complete the verification, then retry the operation.
- Re-run the driver login so a fresh captcha token is obtained after verification.
- Reduce restart/request frequency or pin a stable egress IP to avoid repeated verification challenges.
Defensive patterns
Strategy: try-catch
Try / catch
err := c.getCaptchaToken(...)
if err != nil {
if strings.Contains(err.Error(), "need verify") {
// extract href, prompt user to open it, then retry once after delay
}
return err
} Prevention
- Keep captcha token cached via refreshCTokenCk so the endpoint is hit rarely
- Complete the browser verification promptly when the link appears
- Use stable egress IP for Thunder browser mounts
When it happens
Trigger: Calling the internal captchaToken request (inside Common/verification helper in drivers/thunder_browser/util.go) where resp.Url != "" after a successful HTTP round trip with no ErrResp — typically when requesting a captcha token for login or for refreshing an expired one.
Common situations: New-device or new-IP logins to Thunder via the browser (quanji) API, expired captcha tokens after long uptime, or aggressive request rates triggering the verification wall.
Related errors
- resolutions is required
- <div style="font-family: Arial, sans-serif; padding: 15px;
- empty captchaToken
- need verify: <a target="_blank" href="%s">Click Here</a>
- empty captchaToken
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/ee3abd9c703aee19.
Report an issue: GitHub.