From a3ad04528606db44c23200811ae68618ad17cd80 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 17 Jul 2020 14:11:05 +0100 Subject: [PATCH] Fix TypeError in synapse.notifier (#7880) Fixes #7774 --- changelog.d/7880.bugfix | 1 + synapse/handlers/device.py | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 changelog.d/7880.bugfix diff --git a/changelog.d/7880.bugfix b/changelog.d/7880.bugfix new file mode 100644 index 000000000..356add099 --- /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 f947aa162..db417d60d 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