From 88c84f221feb1dc77664d757051e0766099f18e1 Mon Sep 17 00:00:00 2001 From: Ginger Date: Wed, 31 Dec 2025 15:25:48 -0500 Subject: [PATCH] chore: Add comment and warning to unhappy path --- src/api/client/membership/leave.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/api/client/membership/leave.rs b/src/api/client/membership/leave.rs index 2ed9c22a..b3687612 100644 --- a/src/api/client/membership/leave.rs +++ b/src/api/client/membership/leave.rs @@ -179,6 +179,17 @@ pub async fn leave_room( .state_cache .left_state(user_id, room_id) .await + .inspect_err(|err| { + // `left_state` may return an Err if the user _is_ in the room they're + // trying to leave, but the membership cache is incorrect and + // they're cached as being joined. In this situation + // we save a `None` to the `roomuserid_leftcount` table, which generates + // and sends a dummy leave to the client. + warn!( + "Trying to leave room not cached as leave, sending dummy leave \ + event to client" + ); + }) .unwrap_or_default() }, }