1 files changed, 15 insertions, 2 deletions
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index e566ff1f8e..79e4b1cce3 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -1021,8 +1021,21 @@ class EventCreationHandler:
#
# TODO(faster_joins): figure out how this works, and make sure that the
# old state is complete.
- old_state = await self.store.get_events_as_list(state_event_ids)
- context = await self.state.compute_event_context(event, old_state=old_state)
+ metadata = await self.store.get_metadata_for_events(state_event_ids)
+
+ state_map = {}
+ for event_id, data in metadata.items():
+ if data.state_key is None:
+ raise Exception(
+ "Trying to set non-state event as state: %s", event_id
+ )
+
+ state_map[(data.event_type, data.state_key)] = event_id
+
+ context = await self.state.compute_event_context(
+ event,
+ state_ids_before_event=state_map,
+ )
else:
context = await self.state.compute_event_context(event)
|