2 files changed, 9 insertions, 0 deletions
diff --git a/changelog.d/7880.bugfix b/changelog.d/7880.bugfix
new file mode 100644
index 0000000000..356add0996
--- /dev/null
+++ b/changelog.d/7880.bugfix
@@ -0,0 +1 @@
+Fix "TypeError in `synapse.notifier`" exceptions.
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py
index f947aa1627..db417d60de 100644
--- a/synapse/handlers/device.py
+++ b/synapse/handlers/device.py
@@ -421,6 +421,10 @@ class DeviceHandler(DeviceWorkerHandler):
"""Notify that a user's device(s) has changed. Pokes the notifier, and
remote servers if the user is local.
"""
+ if not device_ids:
+ # No changes to notify about, so this is a no-op.
+ return
+
users_who_share_room = await self.store.get_users_who_share_room_with_user(
user_id
)
@@ -436,6 +440,10 @@ class DeviceHandler(DeviceWorkerHandler):
user_id, device_ids, list(hosts)
)
+ if not position:
+ # This should only happen if there are no updates, so we bail.
+ return
+
for device_id in device_ids:
logger.debug(
"Notifying about update %r/%r, ID: %r", user_id, device_id, position
|