I'm unable to upload attachments using the web client (web vault). Error message in WebBrowser
<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><title>400 Bad Request</title></head><bodyalign="center"><divrole="main"align="center"><h1>400: Bad Request</h1><p>The request could not be understood by the server due to malformed syntax.</p><hr/></div><divrole="contentinfo"align="center"><small>Rocket</small></div></body></html>
Originally created by @tmeckel on GitHub (Jul 31, 2022).
Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/2664
<!--
# ###
NOTE: Please update to the latest version of vaultwarden before reporting an issue!
This saves you and us a lot of time and troubleshooting.
See:
* https://github.com/dani-garcia/vaultwarden/issues/1180
* https://github.com/dani-garcia/vaultwarden/wiki/Updating-the-vaultwarden-image
# ###
-->
<!--
Please fill out the following template to make solving your problem easier and faster for us.
This is only a guideline. If you think that parts are unnecessary for your issue, feel free to remove them.
Remember to hide/redact personal or confidential information,
such as passwords, IP addresses, and DNS names as appropriate.
-->
### Subject of the issue
I'm unable to upload attachments using the web client (web vault). Error message in WebBrowser
```html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>400 Bad Request</title> </head> <body align="center"> <div role="main" align="center"> <h1>400: Bad Request</h1> <p>The request could not be understood by the server due to malformed syntax.</p> <hr /> </div> <div role="contentinfo" align="center"> <small>Rocket</small> </div> </body> </html>
```

In the log file the following is printed:
```text
Jul 30 19:50:33 rt02 bitwarden_rs[18418]: >> Data guard `Form < UploadData < '_ > >` failed: Errors([Error { name: Some("data"), value: None,
Jul 30 19:50:33 rt02 bitwarden_rs[18418]: >> No 400 catcher registered. Using Rocket default.
```
### 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.
=========================================================================================
-->
### Your environment (Generated via diagnostics page)
* Vaultwarden version: v1.25.2
* Web-vault version: v2022.6.2
* Running within Docker: false (Base: Debian)
* Environment settings overridden: true
* Uses a reverse proxy: true
* IP Header check: true (X-Real-IP)
* Internet access: true
* Internet access via a proxy: false
* DNS Check: true
* Time Check: true
* Domain Configuration Check: true
* HTTPS Check: true
* Database type: SQLite
* Database version: 3.35.4
* Clients used:
* Reverse proxy and version:
* Other relevant information:
### Config (Generated via diagnostics page)
<details><summary>Show Running Config</summary>
**Environment settings which are overridden:** DOMAIN, ADMIN_TOKEN, DISABLE_ADMIN_TOKEN
```json
{
"_duo_akey": null,
"_enable_duo": false,
"_enable_email_2fa": false,
"_enable_smtp": true,
"_enable_yubico": true,
"_icon_service_csp": "",
"_icon_service_url": "",
"_ip_header_enabled": true,
"admin_ratelimit_max_burst": 3,
"admin_ratelimit_seconds": 300,
"admin_token": "***",
"allowed_iframe_ancestors": "",
"attachments_folder": "/var/lib/bitwarden_rs/attachments",
"authenticator_disable_time_drift": true,
"data_folder": "/var/lib/bitwarden_rs",
"database_conn_init": "",
"database_max_conns": 10,
"database_timeout": 30,
"database_url": "/***/***/************/**.*******",
"db_connection_retries": 15,
"disable_2fa_remember": false,
"disable_admin_token": false,
"disable_icon_download": false,
"domain": "*****://**.******.***",
"domain_origin": "*****://**.******.***",
"domain_path": "",
"domain_set": true,
"duo_host": null,
"duo_ikey": null,
"duo_skey": null,
"email_attempts_limit": 3,
"email_expiration_time": 600,
"email_token_size": 6,
"emergency_access_allowed": true,
"emergency_notification_reminder_schedule": "0 5 * * * *",
"emergency_request_timeout_schedule": "0 5 * * * *",
"enable_db_wal": true,
"extended_logging": true,
"helo_name": null,
"hibp_api_key": null,
"icon_blacklist_non_global_ips": true,
"icon_blacklist_regex": null,
"icon_cache_folder": "/var/lib/bitwarden_rs/icon_cache",
"icon_cache_negttl": 259200,
"icon_cache_ttl": 2592000,
"icon_download_timeout": 10,
"icon_redirect_code": 302,
"icon_service": "internal",
"incomplete_2fa_schedule": "30 * * * * *",
"incomplete_2fa_time_limit": 3,
"invitation_org_name": "*** Bitwarden",
"invitations_allowed": true,
"ip_header": "X-Real-IP",
"job_poll_interval_ms": 30000,
"log_file": "/var/log/bitwarden_rs",
"log_level": "Info",
"log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f",
"login_ratelimit_max_burst": 10,
"login_ratelimit_seconds": 60,
"org_attachment_limit": null,
"org_creation_users": "",
"password_hints_allowed": true,
"password_iterations": 100000,
"reload_templates": false,
"require_device_email": false,
"rsa_key_filename": "/var/lib/bitwarden_rs/rsa_key",
"send_purge_schedule": "0 5 * * * *",
"sends_allowed": true,
"sends_folder": "/var/lib/bitwarden_rs/sends",
"show_password_hint": true,
"signups_allowed": false,
"signups_domains_whitelist": "",
"signups_verify": true,
"signups_verify_resend_limit": 6,
"signups_verify_resend_time": 3600,
"smtp_accept_invalid_certs": false,
"smtp_accept_invalid_hostnames": false,
"smtp_auth_mechanism": null,
"smtp_debug": false,
"smtp_explicit_tls": false,
"smtp_from": "*****************@******.***",
"smtp_from_name": "**** Password Manager",
"smtp_host": "****.******.***",
"smtp_password": null,
"smtp_port": 25,
"smtp_security": "off",
"smtp_ssl": false,
"smtp_timeout": 15,
"smtp_username": null,
"templates_folder": "/var/lib/bitwarden_rs/templates",
"tmp_folder": "/var/lib/bitwarden_rs/tmp",
"trash_auto_delete_days": null,
"trash_purge_schedule": "0 5 0 * * *",
"use_syslog": false,
"user_attachment_limit": null,
"web_vault_enabled": true,
"web_vault_folder": "/usr/share/bitwarden_rs/web-vault/",
"websocket_address": "0.0.0.0",
"websocket_enabled": true,
"websocket_port": 3012,
"yubico_client_id": null,
"yubico_secret_key": null,
"yubico_server": null
}
```
</details>
### Steps to reproduce
<!-- Tell us how to reproduce this issue. What parameters did you set (differently from the defaults)
and how did you start vaultwarden? -->
1. Open arbitrary vault item
2. Select `Edit`
3. Scroll to `Attachments`
4. Add (small 15kb) `Attachment`
5. Click `Save`
### Expected behaviour
<!-- Tell us what you expected to happen -->
Attachment added to vault item
### Actual behaviour
<!-- Tell us what actually happened -->
Error shown as described above
### Troubleshooting data
<!-- Share any log files, screenshots, or other relevant troubleshooting data -->
see above
Works for me.
It would suggest to check the reverse proxy. Since according to Vaultwarden logs it didn't received any data at all.
That is why it failed.
<!-- gh-comment-id:1200424324 -->
@BlackDex commented on GitHub (Jul 31, 2022):
Works for me.
It would suggest to check the reverse proxy. Since according to Vaultwarden logs it didn't received any data at all.
That is why it failed.
@BlackDex Thanks for the quick answer. I was wondering was the error message of Rocket really means. I'll have a look on my reverse proxy configuration.Are there any special requirements? I saw other issues here, that are discussing the reverse proxy configuration.
<!-- gh-comment-id:1200427821 -->
@tmeckel commented on GitHub (Jul 31, 2022):
@BlackDex Thanks for the quick answer. I was wondering was the error message of Rocket really means. I'll have a look on my reverse proxy configuration.Are there any special requirements? I saw other issues here, that are discussing the reverse proxy configuration.
Well, the issue means that Rocket didn't detect any data a.k.a. attachment. Like if a request was sent without the actual attachment. So, it was either filtered out somewhere in between. Either the from the client side (Firewall, Anti-Virus), something in between, like the reverse proxy.
You could try to enable DEBUG_LOG=tracing which should give a bit more info.
<!-- gh-comment-id:1200429194 -->
@BlackDex commented on GitHub (Jul 31, 2022):
Well, the issue means that Rocket didn't detect any data a.k.a. attachment. Like if a request was sent without the actual attachment. So, it was either filtered out somewhere in between. Either the from the client side (Firewall, Anti-Virus), something in between, like the reverse proxy.
You could try to enable `DEBUG_LOG=tracing` which should give a bit more info.
My problem is solved. In my case the WorkingDirectory and ReadWriteDirectories in my vaultwarden.service was wrong.
But perhaps there is an answer to my question with the filesystem permission I should set.
<!-- gh-comment-id:1259533551 -->
@zutewas commented on GitHub (Sep 27, 2022):
My problem is solved. In my case the WorkingDirectory and ReadWriteDirectories in my vaultwarden.service was wrong.
But perhaps there is an answer to my question with the filesystem permission I should set.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @tmeckel on GitHub (Jul 31, 2022).
Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/2664
Subject of the issue
I'm unable to upload attachments using the web client (web vault). Error message in WebBrowser
In the log file the following is printed:
Deployment environment
Your environment (Generated via diagnostics page)
Config (Generated via diagnostics page)
Show Running Config
Environment settings which are overridden: DOMAIN, ADMIN_TOKEN, DISABLE_ADMIN_TOKEN
Steps to reproduce
EditAttachmentsAttachmentSaveExpected behaviour
Attachment added to vault item
Actual behaviour
Error shown as described above
Troubleshooting data
see above
@BlackDex commented on GitHub (Jul 31, 2022):
Works for me.
It would suggest to check the reverse proxy. Since according to Vaultwarden logs it didn't received any data at all.
That is why it failed.
@tmeckel commented on GitHub (Jul 31, 2022):
@BlackDex Thanks for the quick answer. I was wondering was the error message of Rocket really means. I'll have a look on my reverse proxy configuration.Are there any special requirements? I saw other issues here, that are discussing the reverse proxy configuration.
@BlackDex commented on GitHub (Jul 31, 2022):
Well, the issue means that Rocket didn't detect any data a.k.a. attachment. Like if a request was sent without the actual attachment. So, it was either filtered out somewhere in between. Either the from the client side (Firewall, Anti-Virus), something in between, like the reverse proxy.
You could try to enable
DEBUG_LOG=tracingwhich should give a bit more info.@tmeckel commented on GitHub (Jul 31, 2022):
Problem solved: Vaultwarden wasn't able to save the incoming data to a tmp file
@zutewas commented on GitHub (Sep 27, 2022):
Can you explain how do you have solved the problem?
I'm using the pre-built binaries with ubuntu 22.04 and systemd. Which permission do you have set on the directories?
This are my permissions.
An my error
I'm using vaultwarden behind traefik with simple config. The gui works find. Only "sends" makes problems.
Is there a documentaion which permission I must set on file system if I use the binary non docker way?
Thanks
@zutewas commented on GitHub (Sep 27, 2022):
My problem is solved. In my case the WorkingDirectory and ReadWriteDirectories in my vaultwarden.service was wrong.
But perhaps there is an answer to my question with the filesystem permission I should set.