vaultwarden icon indicating copy to clipboard operation
vaultwarden copied to clipboard

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

Open dionysius opened this issue 2 years ago • 0 comments

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

dionysius avatar Dec 27 '22 23:12 dionysius