AlistGo/alist · error

resolve root folder path failed: folder %q not found under p

Error message

resolve root folder path failed: folder %q not found under parent %s

What it means

Same RootPath resolution walk, but for a nested segment: the folder named `name` was not found under the already-resolved parent whose ID is parentID. Only the first segment produces the 'under /' variant; every deeper segment produces this one.

Source

Thrown at drivers/guangyapan/driver.go:524

		}
		for _, item := range resp.Data.List {
			seen++
			if item.ResType == 2 && item.FileName == name {
				return item.FileID, nil
			}
		}
		if len(resp.Data.List) < pageSize {
			break
		}
		if resp.Data.Total > 0 && seen >= resp.Data.Total {
			break
		}
	}

	if parentID == "" {
		return "", fmt.Errorf("resolve root folder path failed: folder %q not found under /", name)
	}
	return "", fmt.Errorf("resolve root folder path failed: folder %q not found under parent %s", name, parentID)
}

func (d *GuangYaPan) ensureAccessToken(ctx context.Context) error {
	if strings.TrimSpace(d.AccessToken) != "" {
		return nil
	}
	if strings.TrimSpace(d.RefreshToken) == "" {
		if d.canSMSLogin() {
			return d.loginBySMSCode(ctx)
		}
		if d.PhoneNumber != "" {
			return errors.New("not logged in yet: please fill verify_code and save storage to finish SMS login")
		}
		return errors.New("access token is empty")
	}
	return d.refreshToken(ctx)
}

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Check each intermediate folder in RootPath exists with the exact spelling and case.
  2. Shorten RootPath to a known-good parent and browse down to confirm where resolution breaks.
  3. Fix or recreate the missing intermediate folder on the provider.
Defensive patterns

Strategy: validation

Try / catch

if err := storage.Init(ctx); err != nil {
    if strings.Contains(err.Error(), "not found under parent") {
        // nested segment missing: prompt user to verify each path level
    }
}

Prevention

When it happens

Trigger: resolveRootFolderID iterates segments of RootPath; for segment index > 0 it lists children of the resolved parent and finds no match, then returns this error naming the offending parent ID.

Common situations: A subfolder in RootPath (/photos/2024) was renamed or deleted; case-sensitive name mismatch (Photos vs photos); partial visibility of a shared folder.

Related errors


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