diff --git a/synapse/storage/controllers/persist_events.py b/synapse/storage/controllers/persist_events.py index eee314fe07..14f834cb83 100644 --- a/synapse/storage/controllers/persist_events.py +++ b/synapse/storage/controllers/persist_events.py @@ -716,7 +716,13 @@ class EventsPersistenceStorageController: ) ) - # TODO XXX what if previous_event_stitched_order is None? + # if previous_event_stitched_order is None, that means we have a room + # where there are existing events or gaps without assigned stitched orders. + # Let's give up trying to assign stitched orders here. + if previous_event_stitched_order is None: + # TODO do something better here + logger.warning("Found gap event %s without assigned stitched order: bailing", gap_event) + return still_remaining_batch = [] for event, context in remaining_batch: