diff --git a/raiden/network/transport/matrix/client.py b/raiden/network/transport/matrix/client.py
index <HASH>..<HASH> 100644
--- a/raiden/network/transport/matrix/client.py
+++ b/raiden/network/transport/matrix/client.py
@@ -596,7 +596,8 @@ class GMatrixClient(MatrixClient):
             for event in sync_room["account_data"]["events"]:
                 room.account_data[event["type"]] = event["content"]
 
-        self.handle_messages_callback(all_messages)
+        if len(all_messages) > 0:
+            self.handle_messages_callback(all_messages)
 
         if first_sync:
             # Only update the local account data on first sync to avoid races.
diff --git a/raiden/network/transport/matrix/transport.py b/raiden/network/transport/matrix/transport.py
index <HASH>..<HASH> 100644
--- a/raiden/network/transport/matrix/transport.py
+++ b/raiden/network/transport/matrix/transport.py
@@ -903,7 +903,7 @@ class MatrixTransport(Runnable):
 
         self._raiden_service.on_messages(all_messages)
 
-        return bool(all_messages)
+        return len(all_messages) > 0
 
     def _get_retrier(self, receiver: Address) -> _RetryQueue:
         """ Construct and return a _RetryQueue for receiver """
Don't call callback when there are no messages