diff --git a/changelog.d/12843.bugfix b/changelog.d/12843.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..f87c0799a070b2bee3ad5709ee817b0be5060cdb
--- /dev/null
+++ b/changelog.d/12843.bugfix
@@ -0,0 +1 @@
+Fix bug where servers using a Postgres database would fail to backfill from an insertion event when MSC2716 is enabled (`experimental_features.msc2716_enabled`).
diff --git a/synapse/storage/databases/main/event_federation.py b/synapse/storage/databases/main/event_federation.py
index dcfe8caf473abeaa64438851bf36dd010e8b74be..562dcbe94d3ab6df2e884b9ea13ff5bf75bc7823 100644
--- a/synapse/storage/databases/main/event_federation.py
+++ b/synapse/storage/databases/main/event_federation.py
@@ -1057,7 +1057,7 @@ class EventFederationWorkerStore(SignatureWorkerStore, EventsWorkerStore, SQLBas
             INNER JOIN batch_events AS c
             ON i.next_batch_id = c.batch_id
             /* Get the depth of the batch start event from the events table */
-            INNER JOIN events AS e USING (event_id)
+            INNER JOIN events AS e ON c.event_id = e.event_id
             /* Find an insertion event which matches the given event_id */
             WHERE i.event_id = ?
             LIMIT ?