From 7471141eba6a30337557f4733913c023d91b9b87 Mon Sep 17 00:00:00 2001 From: timedout Date: Wed, 17 Jun 2026 15:54:56 +0100 Subject: [PATCH] style: Check power levels before attempting to send extremity squashes Solves a problem where the console screams in agony when local users can't send dummy events --- .../rooms/event_handler/handle_incoming_pdu.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/service/rooms/event_handler/handle_incoming_pdu.rs b/src/service/rooms/event_handler/handle_incoming_pdu.rs index 85728a246..4b7cc2999 100644 --- a/src/service/rooms/event_handler/handle_incoming_pdu.rs +++ b/src/service/rooms/event_handler/handle_incoming_pdu.rs @@ -277,8 +277,19 @@ impl super::Service { "Attempting to squash extremities after upgrading pdu" ); // Try to send a dummy event to squash extremities. See issue #1844 + let power_levels = self + .services + .state_accessor + .get_room_power_levels(room_id) + .await; let mut local_users = self.services.state_cache.local_users_in_room(room_id); while let Some(user_id) = local_users.next().await { + if power_levels.for_user(&user_id) + < power_levels.for_message("org.matrix.dummy_event".into()) + { + trace!(%user_id, "user does not have power level to send dummy event, skipping"); + continue; + } let state_lock = self.services.state.mutex.lock(room_id).await; if self .services