summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/17240.bugfix1
-rw-r--r--synapse/handlers/devicemessage.py7
2 files changed, 8 insertions, 0 deletions
diff --git a/changelog.d/17240.bugfix b/changelog.d/17240.bugfix
new file mode 100644
index 0000000000..c596d270ce
--- /dev/null
+++ b/changelog.d/17240.bugfix
@@ -0,0 +1 @@
+Ignore attempts to send to-device messages to bad users, to avoid log spam when we try to connect to the bad server.
diff --git a/synapse/handlers/devicemessage.py b/synapse/handlers/devicemessage.py
index 79be7c97c8..e56bdb4072 100644
--- a/synapse/handlers/devicemessage.py
+++ b/synapse/handlers/devicemessage.py
@@ -236,6 +236,13 @@ class DeviceMessageHandler:
         local_messages = {}
         remote_messages: Dict[str, Dict[str, Dict[str, JsonDict]]] = {}
         for user_id, by_device in messages.items():
+            if not UserID.is_valid(user_id):
+                logger.warning(
+                    "Ignoring attempt to send device message to invalid user: %r",
+                    user_id,
+                )
+                continue
+
             # add an opentracing log entry for each message
             for device_id, message_content in by_device.items():
                 log_kv(