From 9351e91de073862776f587914f26b901e0d829c4 Mon Sep 17 00:00:00 2001 From: max Date: Fri, 26 Jun 2026 12:53:02 +0200 Subject: [PATCH] Do not fail login when push device registration fails register_push_device() runs on re-authentication of an existing device in authenticated_response(). Its error was propagated with `?`, so a failure talking to the push relay/identity server (e.g. an undecodable response in get_auth_api_token(), "Unexpected push token received from bitwarden server") turned a successful authentication into a 400 Bad Request on POST /identity/connect/token. Handle the registration best-effort instead: log the error and continue, mirroring the new-device login email handling a few lines above. The device is still saved afterwards, and a re-login no longer fails when the push relay/identity endpoint misbehaves. Fixes #7371 --- src/api/identity.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/api/identity.rs b/src/api/identity.rs index 3962827d..f387aebc 100644 --- a/src/api/identity.rs +++ b/src/api/identity.rs @@ -493,7 +493,12 @@ async fn authenticated_response( // register push device if !device.is_new() { - register_push_device(device, conn).await?; + // Registering the device for push is best-effort: a failure talking to the + // push relay/identity server must not turn a successful authentication into + // an error (see #7371). This mirrors the new-device email handling above. + if let Err(e) = register_push_device(device, conn).await { + error!("An error occurred while registering the device for push notifications: {e}"); + } } // Save to update `device.updated_at` to track usage and toggle new status