summary refs log tree commit diff
path: root/synapse/handlers/message.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/handlers/message.py')
-rw-r--r--synapse/handlers/message.py17
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)