AlistGo/alist · error
upload slice %d failed: %w
Error message
upload slice %d failed: %w
What it means
Error "upload slice %d failed: %w" thrown in AlistGo/alist.
Source
Thrown at drivers/123_open/upload.go:128
break
}
sliceNo := i + 1
offset := i * sliceSize
length := min(sliceSize, size-offset)
threadG.Go(func() error {
sliceMD5, err := utils.HashReader(utils.MD5, io.NewSectionReader(tmpF, offset, length))
if err != nil {
return fmt.Errorf("calculate md5 of slice %d failed: %w", sliceNo, err)
}
reader := &progressReader{
Reader: io.NewSectionReader(tmpF, offset, length),
progress: progress,
}
server := servers[int(i)%len(servers)]
err = d.client.Upload.UploadSlice(uploadCtx, server, created.PreuploadID, sliceNo, sliceMD5,
driver.NewLimitedUploadStream(uploadCtx, reader))
if err != nil {
return fmt.Errorf("upload slice %d failed: %w", sliceNo, err)
}
return nil
})
}
if err := threadG.Wait(); err != nil {
return nil, err
}
if err := ctx.Err(); err != nil {
return nil, err
}
// The server merges and verifies the slices asynchronously. While it is
// working it may answer either with completed=false or with an
// undocumented business error (observed: code 20103, "文件正在..."), so
// both are treated as "not finished yet" and the last one is only
// reported once the attempts run out.
var lastErr error
for i := 0; i < completeMaxPolls; i++ {View on GitHub (pinned to 843d9dc814)
Solutions
- Inspect the underlying error details in the message, fix the indicated cause (credentials, network, or provider-side failure), and retry.
When it happens
Trigger: Thrown at drivers/123_open/upload.go:128 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/688df3e0c2a62af1.
Report an issue: GitHub.