vaultwarden silently fails if LOG_FILE is defined but has no permission to write there #960

Closed
opened 2025-10-09 16:58:26 +03:00 by OVERLORD · 0 comments
Owner

Originally created by @dionysius on GitHub.

Subject of the issue

I was running vaultwarden manually, env variables preloaded and failed silently with exit code 1. env variable LOG_FILE was set to a correct path, but that path had not yet the correct permission. After setting the correct permission and starting vaultwarden again, the log file existed and a new error message could be read. I can't say which part is the cause of the silent exit - either way vaultwarden should probably write an error message to stderr.

Deployment environment

  • vaultwarden version: 1.27.0
  • Install method: source (debian packaging I just created and made publicly available: https://github.com/dionysius/vaultwarden-deb but its not relevant to understand this issue)

  • Clients used: none

  • Reverse proxy and version: none

  • MySQL/MariaDB or PostgreSQL version: sqlite3

  • Other relevant details: LOG_FILE has been removed as journalctl output is sufficient so I'm not affected anymore, but this is still a bug

Steps to reproduce

  • set LOG_FILE to a folder where a user has no permission
  • preload that env file or provide .env in the working dir
  • start vaultwarden as that user (e.g. my debugging command was sudo -HEu vaultwarden vaultwarden - -E overtakes env that has been preloaded before)

Expected behaviour

An error to stderr indicating the problem of the exit

Actual behaviour

No output

Troubleshooting data

Before fixing permissions

# journalctl -u vaultwarden
Dec 27 22:15:48 vaultwarden systemd[1]: Started Bitwarden Server (Rust Edition).
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: /--------------------------------------------------------------------\
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: |                        Starting Vaultwarden                        |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: |--------------------------------------------------------------------|
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | This is an *unofficial* Bitwarden implementation, DO NOT use the   |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | official channels to report bugs/features, regardless of client.   |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | Send usage/configuration questions or feature requests to:         |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: |   https://vaultwarden.discourse.group/                             |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | Report suspected bugs/issues in the software itself at:            |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: |   https://github.com/dani-garcia/vaultwarden/issues/new            |
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: \--------------------------------------------------------------------/
Dec 27 22:15:48 vaultwarden vaultwarden[27208]: [INFO] No .env file found.
Dec 27 22:15:49 vaultwarden systemd[1]: vaultwarden.service: Main process exited, code=exited, status=1/FAILURE

# ls -lah /var/log/vaultwarden/
total 3.0K
drwxr-xr-x 2 root root    2 Dec 27 21:27 .
drwxrwxr-x 9 root syslog 20 Dec 27 22:14 ..

# ls -lah /var/lib/vaultwarden/data/
total 6.0K
drwxr-xr-x 2 vaultwarden vaultwarden    4 Dec 27 22:15 .
drwxr-xr-x 3 root        root           3 Dec 27 22:15 ..
-rw-r--r-- 1 vaultwarden vaultwarden 1.7K Dec 27 22:15 rsa_key.pem
-rw-r--r-- 1 vaultwarden vaultwarden  451 Dec 27 22:15 rsa_key.pub.pem

After fixing permissions:

# journalctl -u vaultwarden
Dec 27 22:29:00 vaultwarden systemd[1]: Started Bitwarden Server (Rust Edition).
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: /--------------------------------------------------------------------\
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: |                        Starting Vaultwarden                        |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: |--------------------------------------------------------------------|
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | This is an *unofficial* Bitwarden implementation, DO NOT use the   |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | official channels to report bugs/features, regardless of client.   |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | Send usage/configuration questions or feature requests to:         |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: |   https://vaultwarden.discourse.group/                             |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | Report suspected bugs/issues in the software itself at:            |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: |   https://github.com/dani-garcia/vaultwarden/issues/new            |
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: \--------------------------------------------------------------------/
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [INFO] No .env file found.
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [2022-12-27 22:29:00.152][vaultwarden][ERROR] Web vault is not found at 'web-vault/'. To in>
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [2022-12-27 22:29:00.152][vaultwarden][ERROR] https://github.com/dani-garcia/vaultwarden/wi>
Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [2022-12-27 22:29:00.152][vaultwarden][ERROR] You can also set the environment variable 'WE>
Dec 27 22:29:00 vaultwarden systemd[1]: vaultwarden.service: Main process exited, code=exited, status=1/FAILURE

# ls -lah /var/log/vaultwarden/
total 4.0K
drwxr-xr-x 2 vaultwarden vaultwarden   3 Dec 27 22:28 .
drwxrwxr-x 9 root        syslog       20 Dec 27 22:14 ..
-rw-rw-r-- 1 vaultwarden vaultwarden 780 Dec 27 22:29 vaultwarden.log

# cat /var/log/vaultwarden/vaultwarden.log 
[2022-12-27 22:28:28.714][vaultwarden][ERROR] Web vault is not found at 'web-vault/'. To install it, please follow the steps in: 
[2022-12-27 22:28:28.728][vaultwarden][ERROR] https://github.com/dani-garcia/vaultwarden/wiki/Building-binary#install-the-web-vault
[2022-12-27 22:28:28.730][vaultwarden][ERROR] You can also set the environment variable 'WEB_VAULT_ENABLED=false' to disable it
Originally created by @dionysius on GitHub. ### Subject of the issue I was running vaultwarden manually, env variables preloaded and failed silently with exit code 1. env variable `LOG_FILE` was set to a correct path, but that path had not yet the correct permission. After setting the correct permission and starting vaultwarden again, the log file existed and a new error message could be read. **I can't say which part is the cause of the silent exit** - either way vaultwarden should probably write an error message to stderr. ### Deployment environment <!-- ========================================================================================= Preferably, use the `Generate Support String` button on the admin page's Diagnostics tab. That will auto-generate most of the info requested in this section. ========================================================================================= --> <!-- The version number, obtained from the logs (at startup) or the admin diagnostics page --> <!-- This is NOT the version number shown on the web vault, which is versioned separately from vaultwarden --> <!-- Remember to check if your issue exists on the latest version first! --> * vaultwarden version: 1.27.0 <!-- How the server was installed: Docker image, OS package, built from source, etc. --> * Install method: source (debian packaging I just created and made publicly available: https://github.com/dionysius/vaultwarden-deb but its not relevant to understand this issue) * Clients used: none * Reverse proxy and version: none * MySQL/MariaDB or PostgreSQL version: sqlite3 * Other relevant details: LOG_FILE has been removed as journalctl output is sufficient so I'm not affected anymore, **but this is still a bug** ### Steps to reproduce - set LOG_FILE to a folder where a user has no permission - preload that env file or provide .env in the working dir - start vaultwarden as that user (e.g. my debugging command was `sudo -HEu vaultwarden vaultwarden` - `-E` overtakes env that has been preloaded before) ### Expected behaviour An error to stderr indicating the problem of the exit ### Actual behaviour No output ### Troubleshooting data <!-- Share any log files, screenshots, or other relevant troubleshooting data --> Before fixing permissions ``` # journalctl -u vaultwarden Dec 27 22:15:48 vaultwarden systemd[1]: Started Bitwarden Server (Rust Edition). Dec 27 22:15:48 vaultwarden vaultwarden[27208]: /--------------------------------------------------------------------\ Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | Starting Vaultwarden | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: |--------------------------------------------------------------------| Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | This is an *unofficial* Bitwarden implementation, DO NOT use the | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | official channels to report bugs/features, regardless of client. | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | Send usage/configuration questions or feature requests to: | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | https://vaultwarden.discourse.group/ | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | Report suspected bugs/issues in the software itself at: | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: | https://github.com/dani-garcia/vaultwarden/issues/new | Dec 27 22:15:48 vaultwarden vaultwarden[27208]: \--------------------------------------------------------------------/ Dec 27 22:15:48 vaultwarden vaultwarden[27208]: [INFO] No .env file found. Dec 27 22:15:49 vaultwarden systemd[1]: vaultwarden.service: Main process exited, code=exited, status=1/FAILURE # ls -lah /var/log/vaultwarden/ total 3.0K drwxr-xr-x 2 root root 2 Dec 27 21:27 . drwxrwxr-x 9 root syslog 20 Dec 27 22:14 .. # ls -lah /var/lib/vaultwarden/data/ total 6.0K drwxr-xr-x 2 vaultwarden vaultwarden 4 Dec 27 22:15 . drwxr-xr-x 3 root root 3 Dec 27 22:15 .. -rw-r--r-- 1 vaultwarden vaultwarden 1.7K Dec 27 22:15 rsa_key.pem -rw-r--r-- 1 vaultwarden vaultwarden 451 Dec 27 22:15 rsa_key.pub.pem ``` After fixing permissions: ``` # journalctl -u vaultwarden Dec 27 22:29:00 vaultwarden systemd[1]: Started Bitwarden Server (Rust Edition). Dec 27 22:29:00 vaultwarden vaultwarden[27517]: /--------------------------------------------------------------------\ Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | Starting Vaultwarden | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: |--------------------------------------------------------------------| Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | This is an *unofficial* Bitwarden implementation, DO NOT use the | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | official channels to report bugs/features, regardless of client. | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | Send usage/configuration questions or feature requests to: | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | https://vaultwarden.discourse.group/ | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | Report suspected bugs/issues in the software itself at: | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: | https://github.com/dani-garcia/vaultwarden/issues/new | Dec 27 22:29:00 vaultwarden vaultwarden[27517]: \--------------------------------------------------------------------/ Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [INFO] No .env file found. Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [2022-12-27 22:29:00.152][vaultwarden][ERROR] Web vault is not found at 'web-vault/'. To in> Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [2022-12-27 22:29:00.152][vaultwarden][ERROR] https://github.com/dani-garcia/vaultwarden/wi> Dec 27 22:29:00 vaultwarden vaultwarden[27517]: [2022-12-27 22:29:00.152][vaultwarden][ERROR] You can also set the environment variable 'WE> Dec 27 22:29:00 vaultwarden systemd[1]: vaultwarden.service: Main process exited, code=exited, status=1/FAILURE # ls -lah /var/log/vaultwarden/ total 4.0K drwxr-xr-x 2 vaultwarden vaultwarden 3 Dec 27 22:28 . drwxrwxr-x 9 root syslog 20 Dec 27 22:14 .. -rw-rw-r-- 1 vaultwarden vaultwarden 780 Dec 27 22:29 vaultwarden.log # cat /var/log/vaultwarden/vaultwarden.log [2022-12-27 22:28:28.714][vaultwarden][ERROR] Web vault is not found at 'web-vault/'. To install it, please follow the steps in: [2022-12-27 22:28:28.728][vaultwarden][ERROR] https://github.com/dani-garcia/vaultwarden/wiki/Building-binary#install-the-web-vault [2022-12-27 22:28:28.730][vaultwarden][ERROR] You can also set the environment variable 'WEB_VAULT_ENABLED=false' to disable it ```
OVERLORD added the low prioritygood first issueenhancement labels 2025-10-09 16:58:26 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/vaultwarden#960