AlistGo/alist · error · ErrFileNotExist
file does not exist
Error message
file does not exist
What it means
Sentinel error ErrFileNotExist in the lanzou driver, set in getShareUrlHtml (util.go:332-334) when the share page HTML contains "文件不存在" (file does not exist). The shareID is valid syntactically but the target file is gone — deleted by the owner before or after sharing. Downstream code (e.g. refresh flows) uses errors.Is on this sentinel to decide whether to drop cached objects.
Source
Thrown at drivers/lanzou/types.go:12
package lanzou
import (
"errors"
"fmt"
"github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/pkg/utils"
"time"
)
var ErrFileShareCancel = errors.New("file sharing cancellation")
var ErrFileNotExist = errors.New("file does not exist")
var ErrCookieExpiration = errors.New("cookie expiration")
type RespText[T any] struct {
Text T `json:"text"`
}
type RespInfo[T any] struct {
Info T `json:"info"`
}
var _ model.Obj = (*FileOrFolder)(nil)
var _ model.Obj = (*FileOrFolderByShareUrl)(nil)
type FileOrFolder struct {
Name string `json:"name"`
//Onof string `json:"onof"` // 是否存在提取码
//IsLock string `json:"is_lock"`
//IsCopyright int `json:"is_copyright"`View on GitHub (pinned to 843d9dc814)
Solutions
- Handle with errors.Is(err, ErrFileNotExist) and report a 404-style message; drop the object from any local cache
- Ask the owner for the new share link if the content was re-uploaded
- Double-check the shareID/URL for typos or truncated copy-paste
Defensive patterns
Strategy: try-catch
Type guard
func isFileNotExist(err error) bool { return errors.Is(err, lanzou.ErrFileNotExist) } Try / catch
if err != nil {
if errors.Is(err, lanzou.ErrFileNotExist) {
// drop from cache, return a 404-equivalent
cache.Delete(shareID)
return nil, errs.ObjectNotFound
}
return nil, err
} Prevention
- Use the sentinel to prune dead entries from local link caches
- Surface 'file removed' messaging instead of generic errors so users stop retrying dead links
When it happens
Trigger: GET {ShareUrl}/{shareID} page body contains 文件不存在: file deleted from the uploader's lanzou account, wrong shareID typed/pasted, or the share was purged after a takedown.
Common situations: Stale cached alist link pointing at a removed file; user typo in shareID; uploader re-uploaded under a new link.
Related errors
- file sharing cancellation
- not find file page param
- addr is nil
- acw_sc__v2 validation error
- baseResp.Errmsg
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/415ae173cb937062.
Report an issue: GitHub.