diff --git a/changelog.d/12068.misc b/changelog.d/12068.misc
new file mode 100644
index 0000000000000000000000000000000000000000..72b211e4f55f6751ad44154916ccc7b4ff2280e8
--- /dev/null
+++ b/changelog.d/12068.misc
@@ -0,0 +1 @@
+Add some logging to `/sync` to try and track down #11916.
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index 98eaad33184e1d1bf15e089dafd8f1b1166938e0..0aa3052fd6acee6d1254fd7b0e3b75977c364552 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -697,6 +697,15 @@ class SyncHandler:
         else:
             # no events in this room - so presumably no state
             state = {}
+
+            # (erikj) This should be rarely hit, but we've had some reports that
+            # we get more state down gappy syncs than we should, so let's add
+            # some logging.
+            logger.info(
+                "Failed to find any events in room %s at %s",
+                room_id,
+                stream_position.room_key,
+            )
         return state
 
     async def compute_summary(