AlistGo/alist · error

webauthn not support

Error message

webauthn not support

What it means

CloudreveV4 login prepare step reported WebauthnEnabled == true. The driver has no WebAuthn implementation (no passkey hardware flow is possible from a headless driver), so it refuses to continue rather than fail later.

Source

Thrown at drivers/cloudreve_v4/util.go:110

func (d *CloudreveV4) login() error {
	var siteConfig SiteLoginConfigResp
	err := d.request(http.MethodGet, "/site/config/login", nil, &siteConfig)
	if err != nil {
		return err
	}
	if !siteConfig.Authn {
		return errors.New("authn not support")
	}
	var prepareLogin PrepareLoginResp
	err = d.request(http.MethodGet, "/session/prepare?email="+d.Addition.Username, nil, &prepareLogin)
	if err != nil {
		return err
	}
	if !prepareLogin.PasswordEnabled {
		return errors.New("password not enabled")
	}
	if prepareLogin.WebauthnEnabled {
		return errors.New("webauthn not support")
	}
	for range 5 {
		err = d.doLogin(siteConfig.LoginCaptcha)
		if err == nil {
			break
		}
		if err.Error() != "CAPTCHA not match." {
			break
		}
	}
	return err
}

func (d *CloudreveV4) doLogin(needCaptcha bool) error {
	var err error
	loginBody := base.Json{
		"email":    d.Username,
		"password": d.Password,

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Disable WebAuthn requirement for the account/site in Cloudrebve V4 settings if password API login is desired.
  2. Use an account without WebAuthn enrollment for the mount.
  3. Track driver updates — WebAuthn support may be added later; until then this combination cannot work.
  4. Verify with GET /session/prepare what flags the server actually reports.
Defensive patterns

Strategy: validation

Validate before calling

if prepareLogin.WebauthnEnabled {
    return errors.New("webauthn not support — disable WebAuthn enforcement for this account")
}

Type guard

func siteNeedsWebauthn(p PrepareLoginResp) bool { return p.WebauthnEnabled }

Try / catch

if err := d.login(); err != nil {
    if err.Error() == "webauthn not support" {
        return errors.New("site enforces WebAuthn; this driver cannot authenticate — disable it or use another account")
    }
    return err
}

Prevention

When it happens

Trigger: prepareLogin.WebauthnEnabled is true — the site/account requires or offers WebAuthn. Even when password login is also enabled, this driver treats a WebAuthn-enabled site as unsupported.

Common situations: Site-wide passkey enforcement; account enrolled in passkeys; newer V4 default enabling WebAuthn.

Related errors


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