AlistGo/alist · error
share_ids is empty
Error message
share_ids is empty
What it means
DoubaoShare.initShareList refuses to start when the addition field share_ids is empty. share_ids is the mount's only source of configuration (one share per line, optionally 'path|share_id'), so an empty value means the storage was added with no configuration.
Source
Thrown at drivers/doubao_share/util.go:185
// 记录当前游标
cursorHistory[r.NodeInfoData.NextCursor] = true
// 递归获取下一页
nextFiles, err := d.getShareOverviewWithHistory(shareId, r.NodeInfoData.NextCursor, cursorHistory)
if err != nil {
return nil, err
}
resp = append(resp, nextFiles...)
}
return resp, nil
}
func (d *DoubaoShare) initShareList() error {
if d.Addition.ShareIds == "" {
return fmt.Errorf("share_ids is empty")
}
// 解析分享配置
shareConfigs, rootShares, err := d._parseShareConfigs()
if err != nil {
return err
}
// 检查路径冲突
if err := d._detectPathConflicts(shareConfigs); err != nil {
return err
}
// 构建树形结构
rootMap := d._buildTreeStructure(shareConfigs, rootShares)
// 提取顶级节点
topLevelNodes := d._extractTopLevelNodes(rootMap, rootShares)View on GitHub (pinned to 843d9dc814)
Solutions
- Open the storage's settings in the admin UI and fill share_ids with at least one line: 'share_id' or 'mount_path|share_id'.
- If created via API/CLI, include "addition": {"share_ids": "..."} in the payload.
- Restart/refresh the storage after saving so initShareList re-runs.
Example fix
// before
{"driver": "DoubaoShare", "addition": {"share_ids": ""}}
// after
{"driver": "DoubaoShare", "addition": {"share_ids": "7412365891234567890"}} Defensive patterns
Strategy: validation
Validate before calling
if strings.TrimSpace(d.Addition.ShareIds) == "" {
return fmt.Errorf("share_ids is empty: add at least one 'share_id' or 'path|share_id' line")
} Prevention
- Treat share_ids as required when creating the mount (the UI marks it required).
- Include the field in API/CLI provisioning payloads.
When it happens
Trigger: Creating a doubao_share storage mount and leaving the share_ids text field blank; the config was saved but the field failed validation/serialization; automation provisioning the mount without the field.
Common situations: First-time setup where the user skipped the required field; config imported from another instance missing the field; the UI marking it required but an API-created mount bypassing that.
Related errors
- no valid share_ids found
- remote_path is required
- chunk_size must be positive
- owner and repo are required
- committer email is required
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/2440a383374a1148.
Report an issue: GitHub.