diff --git a/changelog.d/10414.bugfix b/changelog.d/10414.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..bfebed8d29dfcdd0f76e0ac8cabca047ba627009
--- /dev/null
+++ b/changelog.d/10414.bugfix
@@ -0,0 +1 @@
+Fix a number of logged errors caused by remote servers being down.
diff --git a/synapse/handlers/room_list.py b/synapse/handlers/room_list.py
index 6284bcdfbcf64f8060787035629b6f5f31a02b54..fae2c098e32e2679940c5f4be43634525c73509c 100644
--- a/synapse/handlers/room_list.py
+++ b/synapse/handlers/room_list.py
@@ -383,7 +383,11 @@ class RoomListHandler(BaseHandler):
                 ):
                     logger.debug("Falling back to locally-filtered /publicRooms")
                 else:
-                    raise  # Not an error that should trigger a fallback.
+                    # Not an error that should trigger a fallback.
+                    raise SynapseError(502, "Failed to fetch room list")
+            except RequestSendFailed:
+                # Not an error that should trigger a fallback.
+                raise SynapseError(502, "Failed to fetch room list")
 
             # if we reach this point, then we fall back to the situation where
             # we currently don't support searching across federation, so we have