2 files changed, 6 insertions, 0 deletions
diff --git a/changelog.d/15069.misc b/changelog.d/15069.misc
new file mode 100644
index 0000000000..e7a619ad2b
--- /dev/null
+++ b/changelog.d/15069.misc
@@ -0,0 +1 @@
+Faster joins: omit device list updates originating from partial state rooms in /sync responses without lazy loading of members enabled.
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index 3a9cddf15a..4e4595312c 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -1399,6 +1399,11 @@ class SyncHandler:
for room_id, is_partial_state in results.items()
if is_partial_state
)
+ membership_change_events = [
+ event
+ for event in membership_change_events
+ if not results.get(event.room_id, False)
+ ]
# Incremental eager syncs should additionally include rooms that
# - we are joined to
|