Email 2FA fails on iOS app ("No password hash has been submitted") while working fine in browser

Author: fwmarcelCreated Aug 9, 2026Updated Aug 9, 2026

Prerequisites

  • I have searched the existing Closed AND Open Issues AND Discussions
  • I have searched and read the documentation

Vaultwarden Build Version

1.37.1 (docker tag: 1.37.1-alpine)

Deployment method

Official Container Image (Docker/Kubernetes)

Clients

iOS app (Bitwarden) — app version: 2026.7.1

Steps To Reproduce

  1. Have email 2FA enabled on the account.
  2. Log in to the web vault (browser) with the same account/2FA. -> Email 2FA works correctly, code is received and login succeeds.
  3. Log in to the Bitwarden iOS app with the same account. -> App attempts to send/trigger the email 2FA code and fails.

Expected Result

Email 2FA code is sent and login completes, same as in the browser.

Actual Result

Login fails. Server logs show the token endpoint rejecting the login for missing 2FA, followed by the app's request to resend the email code being rejected server-side.

Logs

[2026-08-09 08:36:59.743+0000][error][ERROR] 2FA token not provided
[2026-08-09 08:36:59.743+0000][response][INFO] (login) POST /identity/connect/token => 400 Bad Request
[2026-08-09 08:36:59.818+0000][request][INFO] POST /api/two-factor/send-email-login
[2026-08-09 08:36:59.820+0000][vaultwarden::api::core::two_factor::email][ERROR] No password hash has been submitted.

Additional Context

Looking at the current send_email_login handler (src/api/core/two_factor/email.rs), this error is only reached when the request includes an email but neither a masterPasswordHash nor an authRequestId/authRequestAccessCode. Since this only reproduces via the iOS app (browser login works fine), it looks like the iOS client's request to /api/two-factor/send-email-login in this login path isn't populating either of those fields. Not yet isolated whether this is specific to a re-auth/quick-unlock path or also happens on a fresh password login from the app.