diff --git a/mautrix_facebook/user.py b/mautrix_facebook/user.py
index 79bdab2ceaabe8276b9d34239cb69c5ab548e226..d67c805e0799f6b7fbda5740e21d82a8adeb4b20 100644
--- a/mautrix_facebook/user.py
+++ b/mautrix_facebook/user.py
@@ -59,6 +59,7 @@ class User(BaseUser):
     _session_data: Optional[Dict[str, str]]
     _db_instance: Optional[DBUser]
     _sync_lock: SimpleLock
+    _is_refreshing: bool
 
     _community_helper: CommunityHelper
     _community_id: Optional[CommunityID]
@@ -85,6 +86,7 @@ class User(BaseUser):
         self._community_id = None
         self._sync_lock = SimpleLock("Waiting for thread sync to finish before handling %s",
                                      log=self.log, loop=self.loop)
+        self._is_refreshing = False
 
         self.log = self.log.getChild(self.mxid)
 
@@ -229,6 +231,7 @@ class User(BaseUser):
 
     async def refresh(self) -> None:
         event_id = None
+        self._is_refreshing = True
         if self.listener:
             event_id = await self.send_bridge_notice("Disconnecting Messenger MQTT connection "
                                                      "for session refresh...")
@@ -251,6 +254,8 @@ class User(BaseUser):
             else:
                 await self.send_bridge_notice("Failed to refresh Messenger session: "
                                               "not logged in", edit=event_id)
+        finally:
+            self._is_refreshing = False
 
     async def logout(self) -> bool:
         ok = True
@@ -473,7 +478,8 @@ class User(BaseUser):
         async for event in self.listener.listen():
             await self._handle_event(event)
         self.is_connected = False
-        await self.send_bridge_notice("Facebook Messenger connection closed without error")
+        if not self._is_refreshing:
+            await self.send_bridge_notice("Facebook Messenger connection closed without error")
 
     async def _handle_event(self, event: Any) -> None:
         self.log.debug("Handling facebook event of type %s", type(event))