{"record":{"id":"34a9befd37cb2b03","repo":"AlistGo/alist","slug":"password-not-enabled","errorCode":null,"errorMessage":"password not enabled","messagePattern":"password not enabled","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/cloudreve_v4/util.go","lineNumber":107,"sourceCode":"\treturn nil\n}\n\nfunc (d *CloudreveV4) login() error {\n\tvar siteConfig SiteLoginConfigResp\n\terr := d.request(http.MethodGet, \"/site/config/login\", nil, &siteConfig)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !siteConfig.Authn {\n\t\treturn errors.New(\"authn not support\")\n\t}\n\tvar prepareLogin PrepareLoginResp\n\terr = d.request(http.MethodGet, \"/session/prepare?email=\"+d.Addition.Username, nil, &prepareLogin)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !prepareLogin.PasswordEnabled {\n\t\treturn errors.New(\"password not enabled\")\n\t}\n\tif prepareLogin.WebauthnEnabled {\n\t\treturn errors.New(\"webauthn not support\")\n\t}\n\tfor range 5 {\n\t\terr = d.doLogin(siteConfig.LoginCaptcha)\n\t\tif err == nil {\n\t\t\tbreak\n\t\t}\n\t\tif err.Error() != \"CAPTCHA not match.\" {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (d *CloudreveV4) doLogin(needCaptcha bool) error {\n\tvar err error","sourceCodeStart":89,"sourceCodeEnd":125,"githubUrl":"https://github.com/AlistGo/alist/blob/843d9dc8149126976b2625911e45a4d3ffd6f2f5/drivers/cloudreve_v4/util.go#L89-L125","documentation":"CloudreveV4 login reached the prepare step (GET /session/prepare?email=...) and the server reported that password login is not enabled for this account/site. The driver only implements password login, so it aborts.","triggerScenarios":"prepareLogin.PasswordEnabled == false. Occurs when the account authenticates exclusively via WebAuthn/passkey, OAuth/OIDC only, or the admin disabled password authentication site-wide.","commonSituations":"Passkey-only accounts; SSO-first deployments; user typo in email leading to a prepare response for a non-existent user; admin policy forbidding passwords.","solutions":["Enable password login for the account in Cloudrebve V4 (or ask the admin to).","Use an account that has a password set, and put that exact email in the driver Username field.","Confirm via GET /session/prepare?email=... that password_enabled is true before configuring.","If policy forbids passwords, this driver cannot log in; use a different auth path."],"exampleFix":"curl -sS 'https://v4.example.com/api/v4/session/prepare?email=user@example.com'\n# {\"code\":0,\"data\":{\"password_enabled\":false,...}} -> enable password auth for the account","handlingStrategy":"validation","validationCode":"var prep PrepareLoginResp\nif err := d.request(http.MethodGet, \"/session/prepare?email=\"+d.Addition.Username, nil, &prep); err != nil { return err }\nif !prep.PasswordEnabled { return errors.New(\"password not enabled — use an account with password login\") }","typeGuard":"func accountAllowsPassword(p PrepareLoginResp) bool { return p.PasswordEnabled && !p.WebauthnEnabled }","tryCatchPattern":"if err := d.login(); err != nil {\n    switch err.Error() {\n    case \"password not enabled\":\n        return errors.New(\"target account has no password login; pick another account\")\n    }\n    return err\n}","preventionTips":["Use a plain email+password account for API mounts","Verify /session/prepare flags before wiring automation","Keep a dedicated service account with password auth on V4 sites"],"tags":["cloudreve-v4","login","authentication","go"],"backgroundTag":null,"analyzedSha":"843d9dc8149126976b2625911e45a4d3ffd6f2f5","analyzedAt":"2026-08-15T12:14:11.722Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}