bitwarden / bitwarden/android

[PM-24264] Verification emails don't arrive

Open
#5,610 6 comments 0 reactions 0 assignees View on GitHub
app:password-manager bug
Dominant language
Kotlin
Stars
9.4k
Forks
1.1k
Avg merge
1d 14h
Merged PRs (30d)
67

Description

### Steps To Reproduce

1. When trying to log in either with
- the master password or
- the app authentication (through the Windows app)
2. and successfully entering the password or authorising login in the Windows app
3. the app asks for the verification code that supposedly was just sent in email (2-step login enabled on the account with the email option)

### Expected Result

The verification email with the code should be sent right after providing the master password or after authorising login through the Windows app, so when received, I can log back into the Android app.

Furthermore, the app shouldn't fail to (re)send when using the [Send verification code email again] button.

Also, I suspect that both of these problems could be caused by the same issue, but if I am right about this, at the first automatic attempt, **the app also fails to report** that it didn't manage to send the email in the first place - leaving the user with false hopes that it may arrive after some time. It should report failure right after the first failed attempt.

### Actual Result

The verification email **never arrives** to my email address (while, if I try logging into the Web Vault on my PC, the verification email is received straight away and I can log in there).

When I hit the [Send verification code email again] button, there seems to be a problem every time; a pop-up message titled "An error has occurred." appears with the message:
> Could not send verification email. Try again.

and there are two options to choose from on this pop-up:
- Share error details
- OK

By selecting the "Share error details" option, the following output is provided:
`Stacktrace:
retrofit2.HttpException: HTTP 400
com.bitwarden.network.core.NetworkResultCall.toNetworkResult(Unknown Source:10)
com.bitwarden.network.core.NetworkResultCall.access$toNetworkResult(Unknown Source:0)
com.bitwarden.network.core.NetworkResultCall$enqueue$1.onResponse(Unknown Source:14)
w3.l.q(Unknown Source:12)
ud.f.run(Unknown Source:46)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
java.lang.Thread.run(Thread.java:1012)`

`Version: 2025.6.1 (20398)
Device: 📱 samsung SM-S928B 🤖 15@35 📦 prod
CI: 🧱 commit: bitwarden/android/release/hotfix-v2025.6.0-bwpm@e8878d321546a846909c70c00cdf8d7071f0ecf0
💻 build source: bitwarden/android/actions/runs/15984517798/attempts/1`

### Additional Context

I tried to log in yesterday a couple of times, also tried to use the resend option, which failed every time, so I gave up and thought I would try waiting; maybe the email will arrive after some time. Today, checking my emails, I found none from Bitwarden, so I tried again, but it still didn't work.

Then I tried deleting both cache and app data, but even these didn't seem to help; only the login authorisation option through the Windows app disappeared, and the Master password became the only option to start with.

After this, I tried removing the app completely, rebooting my phone, and reinstalling the app from scratch, but it was still all the same, no verification email, and failures only when requesting to resend.

### Build Version

2025.6.1 (20398)

### What server are you connecting to?

US

### Self-host Server Version

_No response_

### Environment Details

- Device: Samsung SM-S928B Galaxy S24 Ultra running with the latest Samsung fw (Android 15, One UI 7.0)

### Issue Tracking Info

- [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the Android login verification-code and resend flows described in the report, focusing on the HTTP 400 failure and comparing them with the successful Web Vault flow. Trace the relevant Android entry points and verify that automatic and manual email requests succeed or immediately report failure without leaving the user waiting.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
authentication, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.