AlistGo/alist · error

wukong list failed: code=%d message=%s

Error message

wukong list failed: code=%d message=%s

What it means

The Wukong (Datavol) driver's List method posts to /netdisk/user_file/filter_file and expects business code 0 in the JSON envelope. A non-zero resp.Code with resp.Message is surfaced verbatim, indicating the wukong API refused the listing (auth expiry, invalid father_id, permission or rate issues).

Source

Thrown at drivers/wukong/driver.go:115

				"offset":          strconv.Itoa(offset),
				"limit":           strconv.Itoa(limit),
				"aid":             d.Aid,
				"device_platform": "web",
				"language":        d.Language,
			}).
			SetBody(map[string]any{
				"father_id":   asIDValue(fatherID),
				"filter_type": 2,
				"is_desc":     1,
				"file_type":   0,
			}).
			SetResult(&resp).
			Post("/netdisk/user_file/filter_file")
		if err != nil {
			return nil, err
		}
		if resp.Code != 0 {
			return nil, fmt.Errorf("wukong list failed: code=%d message=%s", resp.Code, resp.Message)
		}

		for _, item := range resp.Data.FileList {
			objs = append(objs, &model.Object{
				ID:       strconv.FormatInt(item.FileID, 10),
				Path:     strconv.FormatInt(item.FatherID, 10),
				Name:     item.FileName,
				Size:     item.Size,
				Modified: parseUnix(item.UpdatedAt),
				Ctime:    parseUnix(item.CreatedAt),
				IsFolder: item.IsDirectory == 1,
			})
		}

		if !hasMore(resp.Data.HasMore) || len(resp.Data.FileList) == 0 {
			break
		}
		offset += len(resp.Data.FileList)

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Refresh credentials: re-run the driver login so a fresh token is used.
  2. Verify the father_id/folder exists on the official wukong client; re-list the parent to resync IDs.
  3. Slow down listing/copy jobs to avoid rate-limit codes, and retry after a pause.
Defensive patterns

Strategy: retry

Try / catch

objs, err := d.listDir(fatherID)
if err != nil && strings.Contains(err.Error(), "wukong list failed") {
    time.Sleep(3 * time.Second)
    objs, err = d.listDir(fatherID) // one retry for rate/auth blips
    if err != nil { relogin(); objs, err = d.listDir(fatherID) }
}

Prevention

When it happens

Trigger: Listing any directory where the HTTP call succeeds but resp.Code != 0 — expired token re-login failure, father_id pointing to a deleted/foreign folder, or server-side limits.

Common situations: Long-running mounts with stale tokens, moving/renaming the listed folder elsewhere, or hitting request-frequency caps on the wukong API.

Related errors


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