summary refs log tree commit diff
path: root/packages/overlays/matrix-synapse/patches/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch
blob: b4a7b1aad9c68d44cafc239b9d2640b7172185a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From bd7ef5a0cd885a56741a908842d21efd1a8be96e Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sun, 20 Apr 2025 00:30:29 +0200
Subject: [PATCH 01/10] Hotfix: ignore rejected events in delayed_events

---
 synapse/handlers/delayed_events.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/synapse/handlers/delayed_events.py b/synapse/handlers/delayed_events.py
index 80cb1cec9b..cb2a34ff73 100644
--- a/synapse/handlers/delayed_events.py
+++ b/synapse/handlers/delayed_events.py
@@ -208,8 +208,13 @@ class DelayedEventsHandler:
             )
 
             event = await self._store.get_event(
-                delta.event_id, check_room_id=delta.room_id
+                delta.event_id, check_room_id=delta.room_id, allow_rejected=True, allow_none=True
             )
+
+            if event is None or event.rejected_reason is not None:
+                # This event has been rejected, so we don't want to cancel any delayed events for it.
+                continue
+
             sender = UserID.from_string(event.sender)
 
             next_send_ts = await self._store.cancel_delayed_state_events(
-- 
2.49.0