AlistGo/alist · warning
the task has been deleted
Error message
the task has been deleted
What it means
PikPak.Status() initializes a status with the terminal message 'the task has been deleted' and only overwrites it when the task's ID is found in the cached task list. If the loop finishes without a match, that status (with s.Err set) is returned as-is, marking the task finished-with-error. The task no longer exists on PikPak's side.
Source
Thrown at internal/offline_download/pikpak/pikpak.go:136
Status: "the task has been deleted",
Err: nil,
}
for _, t := range tasks {
if t.ID == task.GID {
s.Progress = float64(t.Progress)
s.Status = t.Message
s.Completed = (t.Phase == "PHASE_TYPE_COMPLETE")
s.TotalBytes, err = strconv.ParseInt(t.FileSize, 10, 64)
if err != nil {
s.TotalBytes = 0
}
if t.Phase == "PHASE_TYPE_ERROR" {
s.Err = fmt.Errorf(t.Message)
}
return s, nil
}
}
s.Err = fmt.Errorf("the task has been deleted")
return s, nil
}
func init() {
tool.Tools.Add(&PikPak{})
}
View on GitHub (pinned to 843d9dc814)
Solutions
- Accept the terminal status: remove the local task record since the remote task is gone
- If the download is still needed, re-add the URL to create a fresh task
- After re-linking the PikPak account, clear stale task records whose GIDs reference the old account
Example fix
// caller handling
s, err := p.Status(task)
if err == nil && s.Err != nil && strings.Contains(s.Err.Error(), "has been deleted") {
// terminal: remote task no longer exists
_ = deleteLocalTask(task.ID)
} Defensive patterns
Strategy: fallback
Try / catch
s, err := p.Status(task)
if err != nil {
return err
}
if s.Err != nil && strings.Contains(s.Err.Error(), "has been deleted") {
// terminal: remote task gone, remove local record and stop
markCompletedAndCleanup(task)
} Prevention
- Check s.Err as well as err — this tool reports deletion via s.Err
- Do not delete PikPak tasks from other clients while OpenList tracks them
- Clear task records when re-linking the PikPak account
When it happens
Trigger: The remote PikPak offline task was deleted (web UI, expiry, or another client) while the local record still polls it; GetTasks cache returned a list that does not contain task.GID.
Common situations: Users cleaning up their PikPak download list from the phone app; tasks whose IDs changed after account re-linking; finished tasks auto-purged by the platform.
Related errors
- the task has been deleted
- unsupported storage driver for offline download, only Pikpak
- failed to add offline download task: %w
- failed get status, wrong gid: %s
- same-name files cannot offline download
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/01216f06866406cf.
Report an issue: GitHub.