dani-garcia / vaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
GNU Affero General Public License v3.0
37.19k stars 1.81k forks source link

Group enabled sync complains: ERROR TypeError: this.cipher is undefined #4368

Closed mightyBroccoli closed 7 months ago

mightyBroccoli commented 7 months ago

Subject of the issue

Group Enabled Sync misbehavior

Deployment environment

Debian Server using the latest vaultwarden container and a webvault extracted from the official container.

Your environment (Generated via diagnostics page)

Config (Generated via diagnostics page)

Show Running Config **Environment settings which are overridden:** ```json { "_duo_akey": null, "_enable_duo": true, "_enable_email_2fa": true, "_enable_smtp": true, "_enable_yubico": true, "_icon_service_csp": "", "_icon_service_url": "", "_ip_header_enabled": true, "_smtp_img_src": "cid:", "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_session_lifetime": 20, "admin_token": "***", "allowed_iframe_ancestors": "", "attachments_folder": "/var/lib/vaultwarden/data/attachments", "auth_request_purge_schedule": "30 * * * * *", "authenticator_disable_time_drift": false, "data_folder": "/var/lib/vaultwarden/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_change_allowed": false, "email_expiration_time": 600, "email_token_size": 6, "emergency_access_allowed": true, "emergency_notification_reminder_schedule": "0 3 * * * *", "emergency_request_timeout_schedule": "0 7 * * * *", "enable_db_wal": true, "event_cleanup_schedule": "0 10 0 * * *", "events_days_retain": 180, "experimental_client_feature_flags": "fido2-vault-credentials", "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/vaultwarden/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_expiration_hours": 168, "invitation_org_name": "Vaultwarden", "invitations_allowed": true, "ip_header": "X-Real-IP", "job_poll_interval_ms": 30000, "log_file": "/var/log/vaultwarden/vaultwarden.log", "log_level": "warn", "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": "****", "org_events_enabled": true, "org_groups_enabled": true, "password_hints_allowed": true, "password_iterations": 600000, "push_enabled": false, "push_identity_uri": "https://identity.bitwarden.com", "push_installation_id": "***", "push_installation_key": "***", "push_relay_uri": "https://push.bitwarden.com", "reload_templates": false, "require_device_email": false, "rsa_key_filename": "/var/lib/vaultwarden/data/rsa_key", "send_purge_schedule": "0 5 * * * *", "sendmail_command": null, "sends_allowed": true, "sends_folder": "/var/lib/vaultwarden/data/sends", "show_password_hint": false, "signups_allowed": true, "signups_domains_whitelist": "****************", "signups_verify": true, "signups_verify_resend_limit": 6, "signups_verify_resend_time": 3600, "smtp_accept_invalid_certs": true, "smtp_accept_invalid_hostnames": false, "smtp_auth_mechanism": null, "smtp_debug": false, "smtp_embed_images": true, "smtp_explicit_tls": null, "smtp_from": "************************************", "smtp_from_name": "********", "smtp_host": "********************************", "smtp_password": "***", "smtp_port": 587, "smtp_security": "starttls", "smtp_ssl": null, "smtp_timeout": 15, "smtp_username": "**************************************************", "templates_folder": "/var/lib/vaultwarden/data/templates", "tmp_folder": "/var/lib/vaultwarden/data/tmp", "trash_auto_delete_days": null, "trash_purge_schedule": "0 5 0 * * *", "use_sendmail": false, "use_syslog": false, "user_attachment_limit": null, "user_send_limit": null, "web_vault_enabled": true, "web_vault_folder": "/var/lib/vaultwarden/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 } ```

Steps to reproduce

Group enabled Vaultwarden Instance utilizing Organization Vault. Create or edit an entry in side a shared collection, it then disappears for all other users until the user force reloads the vault.

Expected behavior

I would expect that the created / edited entry will be synced to all eligible clients. Sometime in the 1.30.x range this behavior worked properly.

Actual behavior

It seems that the actual websocket notification to "update" / refetch is working, but instead of showing the updated/ new entry, it just removes the "old" version. The inspect view is showing the following error message.

Troubleshooting data

``` ERROR TypeError: this.cipher is undefined Angular 2 r main.2c0bfead79421ac627cc.js:56 invoke Angular onInvoke ng_zone.ts:423 Angular 4 onInvokeTask ng_zone.ts:408 error_handler.ts:45:18 handleError error_handler.ts:45 next application_ref.ts:472 next Subscriber.ts:161 _next Subscriber.ts:119 next Subscriber.ts:75 next Subject.ts:68 r errorContext.ts:29 next Subject.ts:61 emit event_emitter.ts:114 onHandleError ng_zone.ts:450 invoke zone.js:412 run zone.js:169 runOutsideAngular ng_zone.ts:249 onHandleError ng_zone.ts:450 handleError zone.js:416 runTask zone.js:217 invokeTask zone.js:528 invoke zone.js:517 0 zone.js:3138 (Async: setTimeout handler) c zone.js:3140 scheduleTask zone.js:433 onScheduleTask zone.js:323 scheduleTask zone.js:426 scheduleTask zone.js:257 scheduleMacroTask zone.js:280 d zone.js:732 o zone.js:3182 r zone.js:1025 setTimeout timeoutProvider.ts:24 r reportUnhandledError.ts:14 b Subscriber.ts:242 error Subscriber.ts:177 _error Subscriber.ts:124 error Subscriber.ts:91 _error Subscriber.ts:124 error Subscriber.ts:91 m innerFrom.ts:94 invoke zone.js:412 onInvoke ng_zone.ts:423 invoke zone.js:411 run zone.js:169 D zone.js:1329 invokeTask zone.js:446 onInvokeTask ng_zone.ts:408 invokeTask zone.js:445 runTask zone.js:214 b zone.js:635 invokeTask zone.js:532 b zone.js:1730 w zone.js:1761 E zone.js:1797 (Async: EventListener.handleEvent) C zone.js:1881 scheduleTask zone.js:433 onScheduleTask zone.js:323 scheduleTask zone.js:426 scheduleTask zone.js:257 scheduleEventTask zone.js:283 B zone.js:2038 addEventListener dom_events.ts:27 addEventListener event_manager.ts:52 listen dom_renderer.ts:295 listen animation_renderer.ts:235 $c listener.ts:179 Yc listener.ts:48 hostBindings main.2c0bfead79421ac627cc.js:56 ml shared.ts:1205 pl shared.ts:1188 il shared.ts:531 Mc element.ts:112 w vault-items.component.html:94 nl shared.ts:496 el shared.ts:300 createEmbeddedView template_ref.ts:96 createEmbeddedView view_container_ref.ts:306 _updateView ng_if.ts:204 set ngIf ng_if.ts:172 Rl shared.ts:1893 dl shared.ts:911 Rc property.ts:43 b vault-items.component.html:95 nl shared.ts:496 ```
BlackDex commented 7 months ago

Looks more like a web-vault error. Are you sure you have fully restarted Vaultwarden, cleared any reverse proxy cache? Also, what happens if you do the same in a Private/Incognito Browser?

mightyBroccoli commented 7 months ago

I force a cache clean, restartet the server and completely replaced the web-vault directory with a fresh copy. I am still able to reproduce this weird behaviour when editing an entry. Additionally, I used a portable Chrome to verify potential extension compatibility issues and got this error:

error_handler.ts:45 ERROR TypeError: Cannot read properties of undefined (reading 'login') at tt.resetMaskState (add-edit.component.ts:511:38) at tt. (add-edit.component.ts:221:10) at Generator.next () at r (main.2c0bfead79421ac627cc.js:56:118485) at t.invoke (zone.js:412:30) at Object.onInvoke (ng_zone.ts:423:29) at t.invoke (zone.js:411:56) at e.run (zone.js:169:47) at zone.js:1329:38 at t.invokeTask (zone.js:446:35) handleError @ error_handler.ts:45 next @ application_ref.ts:472 e.next @ Subscriber.ts:161 t._next @ Subscriber.ts:119 t.next @ Subscriber.ts:75 (anonymous) @ Subject.ts:68 r @ errorContext.ts:29 t.next @ Subject.ts:61 emit @ event_emitter.ts:114 (anonymous) @ ng_zone.ts:450 t.invoke @ zone.js:412 e.run @ zone.js:169 runOutsideAngular @ ng_zone.ts:249 onHandleError @ ng_zone.ts:450 t.handleError @ zone.js:416 e.runTask @ zone.js:217 e.invokeTask @ zone.js:528 a.useG.invoke @ zone.js:517 r.args. @ zone.js:3138 setTimeout (async) c @ zone.js:3140 t.scheduleTask @ zone.js:433 onScheduleTask @ zone.js:323 t.scheduleTask @ zone.js:426 e.scheduleTask @ zone.js:257 e.scheduleMacroTask @ zone.js:280 d @ zone.js:732 (anonymous) @ zone.js:3182 C.a. @ zone.js:1025 setTimeout @ timeoutProvider.ts:24 r @ reportUnhandledError.ts:14 b @ Subscriber.ts:242 e.error @ Subscriber.ts:177 t._error @ Subscriber.ts:124 t.error @ Subscriber.ts:91 t._error @ Subscriber.ts:124 t.error @ Subscriber.ts:91 (anonymous) @ innerFrom.ts:94 t.invoke @ zone.js:412 onInvoke @ ng_zone.ts:423 t.invoke @ zone.js:411 e.run @ zone.js:169 (anonymous) @ zone.js:1329 t.invokeTask @ zone.js:446 onInvokeTask @ ng_zone.ts:408 t.invokeTask @ zone.js:445 e.runTask @ zone.js:214 b @ zone.js:635 e.invokeTask @ zone.js:532 b @ zone.js:1730 w @ zone.js:1761 E @ zone.js:1797 Show 28 more frames
BlackDex commented 7 months ago

We can't do much with those messages. That's all client side stuff. See if there are any issues with downloading the web-vault files. Also check the Vaultwarden logs of there are some messages there.