AlistGo/alist · critical
renames is required
Error message
renames is required
What it means
Returned by Terabox getFiles (drivers/terabox/util.go:155) when a paginated /api/list call reports errno 9000: the same regional-availability block as at Init, but surfacing mid-use during List() of a directory. The storage initialized earlier but the egress region is now being treated as unsupported.
Source
Thrown at drivers/123_open/other.go:269
if err != nil {
return nil, err
}
if err := d.client.File.RecoverTo(ctx, fileIDs, req.ParentFileID); err != nil {
return nil, err
}
return okResult{Success: true}, nil
}
func otherBatchRename(d *Open123, ctx context.Context, args model.OtherArgs) (interface{}, error) {
// JSON object keys are strings, so the id keys are parsed here.
var req struct {
Renames map[string]string `json:"renames"`
}
if err := decodeOtherArgs(args.Data, &req); err != nil {
return nil, err
}
if len(req.Renames) == 0 {
return nil, errors.New("renames is required")
}
renames := make(map[int64]string, len(req.Renames))
for id, name := range req.Renames {
fileID, err := parseFileID(id)
if err != nil {
return nil, err
}
renames[fileID] = name
}
return d.client.File.BatchRename(ctx, renames)
}
func otherListV1(d *Open123, ctx context.Context, args model.OtherArgs) (interface{}, error) {
var req struct {
ParentFileID int64 `json:"parent_file_id"`
Page int `json:"page"`
Limit int `json:"limit"`
OrderBy string `json:"order_by"`View on GitHub (pinned to 843d9dc814)
Solutions
- Restore egress through a supported region (VPN/proxy) and retry the listing.
- If persistent, re-verify with Init — a consistent 9000 means the whole storage is affected, not one folder.
- Track driver/upstream announcements: region handling sometimes moves to a different domain/variant requiring a driver update.
Example fix
// before
files, err := d.getFiles(dir.GetPath()) // errno 9000 mid-session
// after
files, err := d.getFiles(dir.GetPath())
if err != nil && strings.Contains(err.Error(), "not yet available in this area") {
return nil, fmt.Errorf("%w (egress region changed; route via supported region)", err)
} Defensive patterns
Strategy: fallback
Type guard
func isTeraboxAreaErr(err error) bool {
return err != nil && strings.Contains(err.Error(), "not yet available in this area")
} Try / catch
files, err := d.getFiles(path)
if isTeraboxAreaErr(err) {
// fall back to cached listing if available; alert operator to fix egress region
} Prevention
- Pin server egress to a supported-region proxy so classification cannot drift.
- Cache listings so a transient 9000 does not blank the UI.
- Alert on this error — it indicates an environment change, not a data problem.
When it happens
Trigger: Browsing a Terabox folder while the server's IP is classified into a blocked region (VPN changed, ISP re-routed, new datacenter IP range classification); intermittent geo-fencing on some list shards.
Common situations: Long-running mounts that worked at Init and later start failing every List; failover or proxy changes moving traffic to a different region; Terabox expanding its geo-block.
Related errors
- access_token is required in token mode
- clientID and clientSecret are required in client_credentials
- 123 offline download cannot target the root directory, pick
- file_id is required
- file_ids is required
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/a6d584ab3fc7be9c.
Report an issue: GitHub.