diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py
index 08fc6d6783a2da809627414b024f8158176b6941..28b2c80a932613d5485a1a277921e2d4172a679b 100644
--- a/synapse/handlers/room_member.py
+++ b/synapse/handlers/room_member.py
@@ -287,7 +287,13 @@ class RoomMemberHandler(BaseHandler):
                             target.to_string(),
                         )
                         defer.returnValue(ret)
-                    except SynapseError as e:
+                    except Exception as e:
+                        # if we were unable to reject the exception, just mark
+                        # it as rejected on our end and plough ahead.
+                        #
+                        # The 'except' clause is very broad, but we need to
+                        # capture everything from DNS failures upwards
+                        #
                         logger.warn("Failed to reject invite: %s", e)
 
                         yield self.store.locally_reject_invite(