summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/13197.bugfix1
-rw-r--r--synapse/handlers/room.py6
2 files changed, 6 insertions, 1 deletions
diff --git a/changelog.d/13197.bugfix b/changelog.d/13197.bugfix
new file mode 100644
index 0000000000..8417241523
--- /dev/null
+++ b/changelog.d/13197.bugfix
@@ -0,0 +1 @@
+Fix exception when using experimental [MSC3030](https://github.com/matrix-org/matrix-spec-proposals/pull/3030) `/timestamp_to_event` endpoint to look for remote federated imported events before room creation.
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 75c0be8c36..44f8084579 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -1375,6 +1375,7 @@ class TimestampLookupHandler:
         # the timestamp given and the event we were able to find locally
         is_event_next_to_backward_gap = False
         is_event_next_to_forward_gap = False
+        local_event = None
         if local_event_id:
             local_event = await self.store.get_event(
                 local_event_id, allow_none=False, allow_rejected=False
@@ -1461,7 +1462,10 @@ class TimestampLookupHandler:
                         ex.args,
                     )
 
-        if not local_event_id:
+        # To appease mypy, we have to add both of these conditions to check for
+        # `None`. We only expect `local_event` to be `None` when
+        # `local_event_id` is `None` but mypy isn't as smart and assuming as us.
+        if not local_event_id or not local_event:
             raise SynapseError(
                 404,
                 "Unable to find event from %s in direction %s" % (timestamp, direction),