AlistGo/alist · error

GuangYaPan temp dir is not set

Error message

GuangYaPan temp dir is not set

What it means

Same guard as the 123 Open one, but for the GuangYaPan tool: when the destination is not a GuangYaPan storage, the download must stage into conf.GuangYaPanTempDir joined with a uid, and an empty setting aborts the add. This is a configuration error, not a runtime failure of the provider.

Source

Thrown at internal/offline_download/tool/add.go:124

			tempDir = filepath.Join(setting.GetStr(conf.ThunderTempDir), uid)
		}
	case Open123ToolName:
		if _, ok := storage.(*_123Open.Open123); ok {
			tempDir = args.DstDirPath
		} else {
			tempBase := setting.GetStr(conf.Open123TempDir)
			if tempBase == "" {
				return nil, errors.New("123 Open temp dir is not set")
			}
			tempDir = filepath.Join(tempBase, uid)
		}
	case "GuangYaPan":
		if _, ok := storage.(*guangyapan.GuangYaPan); ok {
			tempDir = args.DstDirPath
		} else {
			tempBase := setting.GetStr(conf.GuangYaPanTempDir)
			if tempBase == "" {
				return nil, errors.New("GuangYaPan temp dir is not set")
			}
			tempDir = filepath.Join(tempBase, uid)
		}
	}

	taskCreator, _ := ctx.Value("user").(*model.User) // taskCreator is nil when convert failed
	t := &DownloadTask{
		TaskExtension: task.TaskExtension{
			Creator: taskCreator,
		},
		Url:          args.URL,
		DstDirPath:   args.DstDirPath,
		TempDir:      tempDir,
		DeletePolicy: deletePolicy,
		Toolname:     args.Tool,
		tool:         tool,
	}
	DownloadTaskManager.Add(t)

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Set the GuangYaPan temp dir setting to a path on the GuangYaPan storage (or other storage with capacity)
  2. Or target a destination directory directly on the GuangYaPan mount to skip staging
  3. Retry the add after saving settings
Defensive patterns

Strategy: validation

Validate before calling

// Before adding via the GuangYaPan tool
if _, ok := storage.(*guangyapan.GuangYaPan); !ok {
    if setting.GetStr(conf.GuangYaPanTempDir) == "" {
        return errors.New("configure GuangYaPanTempDir before cross-storage offline downloads")
    }
}

Prevention

When it happens

Trigger: Adding an offline download via the GuangYaPan tool with a non-GuangYaPan destination while conf.GuangYaPanTempDir is empty/unset.

Common situations: GuangYaPan offline tool enabled without configuring its temp dir; setting cleared when switching destination storages; config restore lost the value.

Related errors


AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15). Data as JSON: /api/errors/632a0ef009dcbd17. Report an issue: GitHub.