Skip to content

Bitwarden Android troubleshooting

Mathijs van Veluw edited this page Apr 9, 2025 · 4 revisions

Bitwarden Android troubleshooting

General

Ever since the new Bitwarden Mobile clients, some issues keep arising. These issues are mainly because the new clients are more strict regarding the JSON returned by the server.

Because the old clients were less strict, and Vaultwarden did not (and still isn't fully) filtered or corrected the input from all the clients to keep as flexible as possible when Bitwarden adds new features, sometimes the stored data might contain invalid values. We try to correct all these items during the sync to fix all old invalid values where possible, and trust that the clients send correct new data.

Since we can not know all invalid data ever generated by any client, it's sometimes hard for the developers to figure out what the specific issues is. For this, we need the help of the community to troubleshoot and find the culprit.

Bellow are some troubleshooting guides which should help finding the issues which might help you fix it your self, or help the developers to fix it on the server side.

Things to try first

The first thing to do is ensure the client does not have a invalid cached JSON locally. This is loaded before the sync request is done, and might cause issues we can not solve server side.

  1. Logout from the mobile client
  2. Clear cache and data of the Bitwarden app
  3. Uninstall the Bitwarden app
  4. And to be fully sure it is all cleaned, reboot
  5. Install the Bitwarden app again
  6. Configure the app to connect to your self-hosted instance
  7. Login and cross your fingers

If the steps above did not solved your issue, then there might be something wrong with the data returned by Vaultwarden. In that case continue below.

Install Android Debugging tools (adb)

Most (if not all) Android devices are able to extract logs from the device by connecting your device to a computer which has the right tools installed. You can find a detailed guide per platform on how to install this here https://www.xda-developers.com/install-adb-windows-macos-linux/ .

Please read everything regarding your platform first before actually installing the tools, sometimes there are multiple ways described and the first one might not be the easiest one.

After you have installed those tools, and are able to connect to your phone you can continue to the next steps.

The actual debugging

Now that everything is setup we can start extracting logs which hopefully help tracking the issue.

Run the following command to show only the Bitwarden Client logs:

adb logcat --pid=$(adb shell pidof -s com.x8bit.bitwarden)

Note

You can exit the logcat by pressing ctrl+c (or cmd+c)

Tip

If you want to log everything to a file you can append the command with the following on at least Linux

# Directly to a file:
> bitwarden-android.log
# Or, to a file and on screen at the same time:
> | tee -a bitwarden-android.log
# Full examples:
adb logcat --pid=$(adb shell pidof -s com.x8bit.bitwarden) > bitwarden-android.log
adb logcat --pid=$(adb shell pidof -s com.x8bit.bitwarden) | tee -a bitwarden-android.log

This should start showing some logs, if so continue, if not, check the error message and try to resolve the issue.

Now with the logs outputting on the screen, try to trigger the error in the client and check the output. This output is needed for the developers to try and figure out where the issue is.

Getting more details

If there is no useful output, there is a way to get more details by using the Bitwarden Dev/Debug Android client.
These versions are build via GitHub Actions and can be found here: https://github.com/bitwarden/android/actions/workflows/build.yml?query=is%3Asuccess

Basically, any successful build should contain an artifact file called com.x8bit.bitwarden.dev.apk.
Download this file, which will be a zip file, extract that zip file, and install the extracted apk file.
This can be done via the Android device it self if you have a File Manager which supports zip files.
Or, use adb to install this like this:

adb install com.x8bit.bitwarden.dev.apk

Once this is done, you should have an extra Bitwarden client installed which should output more detailed logs.
Follow the same steps as you normally do to login to your self-hosted instance.
And to extract logs from this client, you need to adjust the logcat command a bit to look like this:

adb logcat --pid=$(adb shell pidof -s com.x8bit.bitwarden.dev)

This should provide much more details, and will be really helpful tracking down the issue.

Caution

The output of of the dev client contains the response sent by the Vaultwarden server, which might contain sensitive data!
While most items are encrypted, some items like email address or your Vaultwarden domain are not!
Be careful on how you share this output!
While the full output is very useful to us developers, and helps troubleshooting, and we can't decrypt the data, still be careful!

Sharing the results

We suggest to share these files in a secure way either:

  1. (Preferred) Via our Matrix chat: Matrix Chat
  2. Via email, by sending an security-contact to provide the details.
  3. Via your self-hosted Vaultwarden using Send and a password (Shared via Matrix or email).

If you have any questions regarding this topic, please start a new topic on our GitHub Discussions.

FAQs

  1. FAQs
  2. Audits

Troubleshooting

  1. Bitwarden Android troubleshooting

Container Image Usage

  1. Which container image to use
  2. Starting a container
  3. Updating the vaultwarden image
  4. Using Docker Compose
  5. Using Podman

Deployment

  1. Building your own docker image
  2. Building binary
  3. Pre-built binaries
  4. Third-party packages
  5. Deployment examples
  6. Proxy examples
  7. Logrotate example

HTTPS

  1. Enabling HTTPS
  2. Running a private vaultwarden instance with Let's Encrypt certs

Configuration

  1. Overview
  2. Disable registration of new users
  3. Disable invitations
  4. Enabling admin page
  5. Disable the admin token
  6. Enabling WebSocket notifications
  7. Enabling Mobile Client push notification
  8. Enabling U2F and FIDO2 WebAuthn authentication
  9. Enabling YubiKey OTP authentication
  10. Changing persistent data location
  11. Changing the API request size limit
  12. Changing the number of workers
  13. SMTP configuration
  14. Password hint display
  15. Disabling or overriding the Vault interface hosting
  16. Logging
  17. Creating a systemd service
  18. Syncing users from LDAP
  19. Using an alternate base dir (subdir/subpath)
  20. Other configuration

Database

  1. Using the MariaDB (MySQL) Backend
  2. Using the PostgreSQL Backend
  3. Running without WAL enabled
  4. Migrating from MariaDB (MySQL) to SQLite

Security

  1. Hardening Guide
  2. Fail2Ban Setup
  3. Fail2Ban + ModSecurity + Traefik + Docker

Other

  1. Translating the email templates
  2. Translating admin page
  3. Customize Vaultwarden CSS

Backup

  1. General (not docker)

Other Information

  1. Importing data from Keepass or KeepassX
  2. Backing up your vault
  3. Differences from the upstream API implementation
  4. Supporting upstream development
  5. Caddy 2.x with Cloudflare DNS
  6. Git hooks
Clone this wiki locally