"Your login session has expired." when trying to open an item that belongs to an org #1291

Closed
opened 2026-02-05 00:33:23 +03:00 by OVERLORD · 6 comments
Owner

Originally created by @qbarbe on GitHub (Jun 2, 2022).

Subject of the issue

"Your login session has expired." when trying to open an item that belongs to an org

Deployment environment

Your environment (Generated via diagnostics page)

  • Vaultwarden version: v1.25.0
  • Web-vault version: v2.28.1
  • Running within Docker: true (Base: Debian)
  • Environment settings overridden: false
  • Uses a reverse proxy: false
  • Internet access: true
  • Internet access via a proxy: false
  • DNS Check: true
  • Time Check: true
  • Domain Configuration Check: false
  • 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)

Show Running Config

Environment settings which are overridden:

{
  "_duo_akey": null,
  "_enable_duo": false,
  "_enable_email_2fa": true,
  "_enable_smtp": true,
  "_enable_yubico": true,
  "_ip_header_enabled": true,
  "admin_ratelimit_max_burst": 3,
  "admin_ratelimit_seconds": 300,
  "admin_token": "***",
  "allowed_iframe_ancestors": "",
  "attachments_folder": "data/attachments",
  "authenticator_disable_time_drift": false,
  "data_folder": "data",
  "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": false,
  "icon_blacklist_regex": null,
  "icon_cache_folder": "data/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-Forwarded-For",
  "job_poll_interval_ms": 30000,
  "log_file": "/data/vaultwarden.log",
  "log_level": "debug",
  "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_iterations": 100000,
  "reload_templates": false,
  "require_device_email": true,
  "rsa_key_filename": "data/rsa_key",
  "send_purge_schedule": "0 5 * * * *",
  "sends_allowed": true,
  "sends_folder": "data/sends",
  "show_password_hint": false,
  "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": true,
  "smtp_from": "*********@*****************.**",
  "smtp_from_name": "Bitwarden",
  "smtp_host": "****.************************.**",
  "smtp_password": "***",
  "smtp_port": 465,
  "smtp_security": "force_tls",
  "smtp_ssl": false,
  "smtp_timeout": 15,
  "smtp_username": "*********",
  "templates_folder": "data/templates",
  "tmp_folder": "data/tmp",
  "trash_auto_delete_days": 30,
  "trash_purge_schedule": "0 5 0 * * *",
  "use_syslog": false,
  "user_attachment_limit": null,
  "web_vault_enabled": true,
  "web_vault_folder": "web-vault/",
  "websocket_address": "0.0.0.0",
  "websocket_enabled": false,
  "websocket_port": 3012,
  "yubico_client_id": null,
  "yubico_secret_key": null,
  "yubico_server": null
}
  • vaultwarden version: 2.25.0
  • Install method: Docker

  • Clients used: Web vault, Browser extension and Desktop client

Steps to reproduce

Command used to start vaultwarden: docker run -d --restart unless-stopped --name vaultwarden -v /vw-data/:/data/ -e "TZ=Europe/Paris" -e LOG_FILE=/data/vaultwarden.log -e LOG_LEVEL=debug -p 80:80 vaultwarden/server:latest

Login to the web-vault, click on an org, try to open an item.

Expected behaviour

The org's item should open

Actual behaviour

I get logged out as soon as I click on the item with the "Your login session has expired." error, in short: I can't open org items from the web vault.

Troubleshooting data

Logs from /vw-data/vaultwarden.log and logs set to debug.

[2022-06-02 18:52:24.543][request][INFO] GET /api/organizations/some-id/collections
[2022-06-02 18:52:24.544][response][INFO] (get_org_collections) GET /api/organizations/<org_id>/collections => 200 OK
[2022-06-02 18:52:24.604][request][INFO] GET /api/ciphers/organization-details?organizationId=some-id
[2022-06-02 18:52:24.610][response][INFO] (get_org_details) GET /api/ciphers/organization-details?<data..> => 200 OK
[2022-06-02 18:52:27.036][request][INFO] GET /notifications/hub?access_token=some-token
[2022-06-02 18:52:27.036][response][INFO] (websockets_err) GET /notifications/hub => 400 Bad Request

Also, don't pay attention to the domain configuration check: the domain name I use to access the admin page is the internal one.

Originally created by @qbarbe on GitHub (Jun 2, 2022). <!-- 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 "Your login session has expired." when trying to open an item that belongs to an org ### Deployment environment ### Your environment (Generated via diagnostics page) * Vaultwarden version: v1.25.0 * Web-vault version: v2.28.1 * Running within Docker: true (Base: Debian) * Environment settings overridden: false * Uses a reverse proxy: false * Internet access: true * Internet access via a proxy: false * DNS Check: true * Time Check: true * Domain Configuration Check: false * 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:** ```json { "_duo_akey": null, "_enable_duo": false, "_enable_email_2fa": true, "_enable_smtp": true, "_enable_yubico": true, "_ip_header_enabled": true, "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_token": "***", "allowed_iframe_ancestors": "", "attachments_folder": "data/attachments", "authenticator_disable_time_drift": false, "data_folder": "data", "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": false, "icon_blacklist_regex": null, "icon_cache_folder": "data/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-Forwarded-For", "job_poll_interval_ms": 30000, "log_file": "/data/vaultwarden.log", "log_level": "debug", "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_iterations": 100000, "reload_templates": false, "require_device_email": true, "rsa_key_filename": "data/rsa_key", "send_purge_schedule": "0 5 * * * *", "sends_allowed": true, "sends_folder": "data/sends", "show_password_hint": false, "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": true, "smtp_from": "*********@*****************.**", "smtp_from_name": "Bitwarden", "smtp_host": "****.************************.**", "smtp_password": "***", "smtp_port": 465, "smtp_security": "force_tls", "smtp_ssl": false, "smtp_timeout": 15, "smtp_username": "*********", "templates_folder": "data/templates", "tmp_folder": "data/tmp", "trash_auto_delete_days": 30, "trash_purge_schedule": "0 5 0 * * *", "use_syslog": false, "user_attachment_limit": null, "web_vault_enabled": true, "web_vault_folder": "web-vault/", "websocket_address": "0.0.0.0", "websocket_enabled": false, "websocket_port": 3012, "yubico_client_id": null, "yubico_secret_key": null, "yubico_server": null } ``` </details> * vaultwarden version: 2.25.0 <!-- How the server was installed: Docker image, OS package, built from source, etc. --> * Install method: Docker * Clients used: Web vault, Browser extension and Desktop client ### Steps to reproduce Command used to start vaultwarden: docker run -d --restart unless-stopped --name vaultwarden -v /vw-data/:/data/ -e "TZ=Europe/Paris" -e LOG_FILE=/data/vaultwarden.log -e LOG_LEVEL=debug -p 80:80 vaultwarden/server:latest Login to the web-vault, click on an org, try to open an item. ### Expected behaviour The org's item should open ### Actual behaviour I get logged out as soon as I click on the item with the "Your login session has expired." error, in short: I can't open org items from the web vault. ### Troubleshooting data Logs from /vw-data/vaultwarden.log and logs set to debug. ``` [2022-06-02 18:52:24.543][request][INFO] GET /api/organizations/some-id/collections [2022-06-02 18:52:24.544][response][INFO] (get_org_collections) GET /api/organizations/<org_id>/collections => 200 OK [2022-06-02 18:52:24.604][request][INFO] GET /api/ciphers/organization-details?organizationId=some-id [2022-06-02 18:52:24.610][response][INFO] (get_org_details) GET /api/ciphers/organization-details?<data..> => 200 OK [2022-06-02 18:52:27.036][request][INFO] GET /notifications/hub?access_token=some-token [2022-06-02 18:52:27.036][response][INFO] (websockets_err) GET /notifications/hub => 400 Bad Request ``` Also, don't pay attention to the domain configuration check: the domain name I use to access the admin page is the internal one.
Author
Owner

@BlackDex commented on GitHub (Jun 2, 2022):

We need a bit more information, like what role does the org user has.
Also, i do not see that specific logout action in the logs you posted.

Could you please try again and see if you can get the 4XX error message from the logs regarding this? (Not the websockets error)

@BlackDex commented on GitHub (Jun 2, 2022): We need a bit more information, like what role does the org user has. Also, i do not see that specific logout action in the logs you posted. Could you please try again and see if you can get the 4XX error message from the logs regarding this? (Not the websockets error)
Author
Owner

@qbarbe commented on GitHub (Jun 3, 2022):

The org user is an owner.
And the logs I posted above are the ones that appeared right when I tried to open an org item which logged me out.
The log level is set to debug (the read-only section in the admin page says so) and the vaultwarden.log file shows the same logs as docker logs vaultwarden.

I also tried with the trace log level and there is no additional logs when I get logged out (I'm reading the logs file using tail -f)

I want to add that I can open org items only from the "My Vault" page, it is only from the orgnanization's page that I get logged out trying to open an item.

@qbarbe commented on GitHub (Jun 3, 2022): The org user is an owner. And the logs I posted above are the ones that appeared right when I tried to open an org item which logged me out. The log level is set to debug (the read-only section in the admin page says so) and the `vaultwarden.log` file shows the same logs as `docker logs vaultwarden`. I also tried with the trace log level and there is no additional logs when I get logged out (I'm reading the logs file using tail -f) I want to add that I can open org items only from the "My Vault" page, it is only from the orgnanization's page that I get logged out trying to open an item.
Author
Owner

@BlackDex commented on GitHub (Jun 3, 2022):

What are the collection settings of the user?
What happens if you use an other browser?
Did you have v1.24.0 installed before, and did it worked there? If so, what happens if you revert?

Edit:
If you would be logged-out then i still would need to see something else then a 200 within the logs.

@BlackDex commented on GitHub (Jun 3, 2022): What are the collection settings of the user? What happens if you use an other browser? Did you have v1.24.0 installed before, and did it worked there? If so, what happens if you revert? Edit: If you would be logged-out then i still would need to see something else then a 200 within the logs.
Author
Owner

@qbarbe commented on GitHub (Jun 3, 2022):

The user also has the owner role for all the collections if that's what you meant by collection settings.
I tried using Firefox and Chrome and it didn't change anything, I still got logged out.

I did have 1.24.0 before but I don't think I've tried to use the web vault to access org items.
I tried reverting to 1.24.0 and I still got logged out.

And here are the logs (trace) that appeared when I got logged off

[2022-06-03 12:21:45.856][tracing::span::active][TRACE] -> parse_headers;
[2022-06-03 12:21:45.856][tracing::span::active][TRACE] <- parse_headers;
[2022-06-03 12:21:45.856][tracing::span][TRACE] -- parse_headers;
[2022-06-03 12:21:45.856][request][INFO] GET /api/ciphers/organization-details?organizationId=[redacted]
[2022-06-03 12:21:45.861][response][INFO] (get_org_details) GET /api/ciphers/organization-details?<data..> => 200 OK
[2022-06-03 12:21:45.861][tracing::span][TRACE] encode_headers;
[2022-06-03 12:21:45.861][tracing::span::active][TRACE] -> encode_headers;
[2022-06-03 12:21:45.861][tracing::span::active][TRACE] <- encode_headers;
[2022-06-03 12:21:45.861][tracing::span][TRACE] -- encode_headers;
[2022-06-03 12:21:49.004][mio::poll][TRACE] deregistering event source from poller
[2022-06-03 12:21:59.372][mio::poll][TRACE] registering event source with poller: token=Token([redacted]), interests=READABLE | WRITABLE
[2022-06-03 12:21:59.373][tracing::span][TRACE] parse_headers;
[2022-06-03 12:21:59.373][tracing::span::active][TRACE] -> parse_headers;
[2022-06-03 12:21:59.373][tracing::span::active][TRACE] <- parse_headers;
[2022-06-03 12:21:59.373][tracing::span][TRACE] -- parse_headers;
[2022-06-03 12:21:59.373][request][INFO] GET /notifications/hub?access_token=[redacted]
[2022-06-03 12:21:59.373][response][INFO] (websockets_err) GET /notifications/hub => 400 Bad Request
[2022-06-03 12:21:59.373][tracing::span][TRACE] encode_headers;
[2022-06-03 12:21:59.373][tracing::span::active][TRACE] -> encode_headers;
[2022-06-03 12:21:59.373][tracing::span::active][TRACE] <- encode_headers;
[2022-06-03 12:21:59.373][tracing::span][TRACE] -- encode_headers;
[2022-06-03 12:21:59.413][mio::poll][TRACE] deregistering event source from poller
[2022-06-03 12:22:00.805][mio::poll][TRACE] registering event source with poller: token=Token([redacted]), interests=READABLE | WRITABLE
[2022-06-03 12:22:00.805][tracing::span][TRACE] parse_headers;
[2022-06-03 12:22:00.805][tracing::span::active][TRACE] -> parse_headers;
[2022-06-03 12:22:00.806][tracing::span::active][TRACE] <- parse_headers;
[2022-06-03 12:22:00.806][tracing::span][TRACE] -- parse_headers;
[2022-06-03 12:22:00.806][request][INFO] GET /alive
[2022-06-03 12:22:00.806][response][INFO] (alive) GET /alive => 200 OK
[2022-06-03 12:22:00.806][tracing::span][TRACE] encode_headers;
[2022-06-03 12:22:00.806][tracing::span::active][TRACE] -> encode_headers;
[2022-06-03 12:22:00.806][tracing::span::active][TRACE] <- encode_headers;
[2022-06-03 12:22:00.806][tracing::span][TRACE] -- encode_headers;
[2022-06-03 12:22:00.807][mio::poll][TRACE] deregistering event source from poller
@qbarbe commented on GitHub (Jun 3, 2022): The user also has the owner role for all the collections if that's what you meant by collection settings. I tried using Firefox and Chrome and it didn't change anything, I still got logged out. I did have 1.24.0 before but I don't think I've tried to use the web vault to access org items. I tried reverting to 1.24.0 and I still got logged out. And here are the logs (trace) that appeared when I got logged off ``` [2022-06-03 12:21:45.856][tracing::span::active][TRACE] -> parse_headers; [2022-06-03 12:21:45.856][tracing::span::active][TRACE] <- parse_headers; [2022-06-03 12:21:45.856][tracing::span][TRACE] -- parse_headers; [2022-06-03 12:21:45.856][request][INFO] GET /api/ciphers/organization-details?organizationId=[redacted] [2022-06-03 12:21:45.861][response][INFO] (get_org_details) GET /api/ciphers/organization-details?<data..> => 200 OK [2022-06-03 12:21:45.861][tracing::span][TRACE] encode_headers; [2022-06-03 12:21:45.861][tracing::span::active][TRACE] -> encode_headers; [2022-06-03 12:21:45.861][tracing::span::active][TRACE] <- encode_headers; [2022-06-03 12:21:45.861][tracing::span][TRACE] -- encode_headers; [2022-06-03 12:21:49.004][mio::poll][TRACE] deregistering event source from poller [2022-06-03 12:21:59.372][mio::poll][TRACE] registering event source with poller: token=Token([redacted]), interests=READABLE | WRITABLE [2022-06-03 12:21:59.373][tracing::span][TRACE] parse_headers; [2022-06-03 12:21:59.373][tracing::span::active][TRACE] -> parse_headers; [2022-06-03 12:21:59.373][tracing::span::active][TRACE] <- parse_headers; [2022-06-03 12:21:59.373][tracing::span][TRACE] -- parse_headers; [2022-06-03 12:21:59.373][request][INFO] GET /notifications/hub?access_token=[redacted] [2022-06-03 12:21:59.373][response][INFO] (websockets_err) GET /notifications/hub => 400 Bad Request [2022-06-03 12:21:59.373][tracing::span][TRACE] encode_headers; [2022-06-03 12:21:59.373][tracing::span::active][TRACE] -> encode_headers; [2022-06-03 12:21:59.373][tracing::span::active][TRACE] <- encode_headers; [2022-06-03 12:21:59.373][tracing::span][TRACE] -- encode_headers; [2022-06-03 12:21:59.413][mio::poll][TRACE] deregistering event source from poller [2022-06-03 12:22:00.805][mio::poll][TRACE] registering event source with poller: token=Token([redacted]), interests=READABLE | WRITABLE [2022-06-03 12:22:00.805][tracing::span][TRACE] parse_headers; [2022-06-03 12:22:00.805][tracing::span::active][TRACE] -> parse_headers; [2022-06-03 12:22:00.806][tracing::span::active][TRACE] <- parse_headers; [2022-06-03 12:22:00.806][tracing::span][TRACE] -- parse_headers; [2022-06-03 12:22:00.806][request][INFO] GET /alive [2022-06-03 12:22:00.806][response][INFO] (alive) GET /alive => 200 OK [2022-06-03 12:22:00.806][tracing::span][TRACE] encode_headers; [2022-06-03 12:22:00.806][tracing::span::active][TRACE] -> encode_headers; [2022-06-03 12:22:00.806][tracing::span::active][TRACE] <- encode_headers; [2022-06-03 12:22:00.806][tracing::span][TRACE] -- encode_headers; [2022-06-03 12:22:00.807][mio::poll][TRACE] deregistering event source from poller ```
Author
Owner

@BlackDex commented on GitHub (Jun 3, 2022):

I'm not seeing any 4XX errors in the logs, which would need to occur if you were forced to logout.
What does the Browser Developer Console (F12) tell when you try this? Because i do not see anything in the logs at all.

Also, i see you are not using a reverse proxy, though that should not be that big of an issue, but we know that the SSL part of the HTTP Library we use could have some issues with some types of encryption. If that is the case, i would recommend to add a reverse proxy and see if that helps.

@BlackDex commented on GitHub (Jun 3, 2022): I'm not seeing any 4XX errors in the logs, which would need to occur if you were forced to logout. What does the Browser Developer Console (F12) tell when you try this? Because i do not see anything in the logs at all. Also, i see you are not using a reverse proxy, though that should not be that big of an issue, but we know that the SSL part of the HTTP Library we use could have some issues with some types of encryption. If that is the case, i would recommend to add a reverse proxy and see if that helps.
Author
Owner

@qbarbe commented on GitHub (Jun 3, 2022):

I am using a reverse proxy (apache2), it was not detected by the diagnostics page because I accessed the admin page using the internal domain name which is not handled by the reverse proxy.

Also, I've checked the logs in the browser's console and I saw that there was a 403 error with this

GET | https://bitwarden.mydomain.tld/api/ciphers/[redacted]/admin

And the issue here is that there is /admin at the end of the URL and I blocked /admin using ProxyMatch on the reverse proxy in an attempt at blocking the vaultwarden admin page from being accessible using the public domain name.
I removed the block and I can now open org items.

Thanks for your help.

@qbarbe commented on GitHub (Jun 3, 2022): I am using a reverse proxy (apache2), it was not detected by the diagnostics page because I accessed the admin page using the internal domain name which is not handled by the reverse proxy. Also, I've checked the logs in the browser's console and I saw that there was a 403 error with this GET | https://bitwarden.mydomain.tld/api/ciphers/[redacted]/admin And the issue here is that there is /admin at the end of the URL and I blocked /admin using ProxyMatch on the reverse proxy in an attempt at blocking the vaultwarden admin page from being accessible using the public domain name. I removed the block and I can now open org items. Thanks for your help.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/vaultwarden#1291