diff --git a/crates/client/src/user.rs b/crates/client/src/user.rs index dcab0e5394..122046827a 100644 --- a/crates/client/src/user.rs +++ b/crates/client/src/user.rs @@ -146,7 +146,13 @@ impl UserStore { }), _maintain_current_user: cx.spawn(|this, mut cx| async move { let mut status = client.status(); + let weak = Arc::downgrade(&client); + drop(client); while let Some(status) = status.next().await { + // if the client is dropped, the app is shutting down. + let Some(client) = weak.upgrade() else { + return Ok(()); + }; match status { Status::Connected { .. } => { if let Some(user_id) = client.user_id() {