AlistGo/alist · error
complete upload of %s timed out while the server was merging
Error message
complete upload of %s timed out while the server was merging the slices
What it means
Error "complete upload of %s timed out while the server was merging the slices" thrown in AlistGo/alist.
Source
Thrown at drivers/123_open/upload.go:166
switch {
case err != nil:
lastErr = err
case res.Completed && res.FileID != 0:
up(100)
return uploadedObj(res.FileID, file, etag), nil
default:
lastErr = nil
}
select {
case <-ctx.Done():
return nil, ctx.Err()
case <-time.After(completePollInterval):
}
}
if lastErr != nil {
return nil, fmt.Errorf("complete upload of %s failed: %w", file.GetName(), lastErr)
}
return nil, fmt.Errorf("complete upload of %s timed out while the server was merging the slices", file.GetName())
}
// uploadedObj describes the file the server created for an upload.
func uploadedObj(fileID int64, file model.FileStreamer, etag string) model.Obj {
return &model.Object{
ID: strconv.FormatInt(fileID, 10),
Name: file.GetName(),
Size: file.GetSize(),
Modified: time.Now(),
Ctime: time.Now(),
HashInfo: utils.NewHashInfo(utils.MD5, etag),
}
}
// uploadProgress accumulates the bytes uploaded by all concurrent slices and
// forwards the overall percentage. Reporting is serialized because the callback
// is not required to be safe for concurrent use.
type uploadProgress struct {View on GitHub (pinned to 843d9dc814)
Solutions
- Retry the operation; if it persists, check network connectivity and the provider's service status, or increase the timeout.
When it happens
Trigger: Thrown at drivers/123_open/upload.go:166 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/a7f686496aa99358.
Report an issue: GitHub.