diff --git a/changelog.d/11805.bugfix b/changelog.d/11805.bugfix new file mode 100644 index 000000000000..4e873e344174 --- /dev/null +++ b/changelog.d/11805.bugfix @@ -0,0 +1 @@ +Fix a bug where email notifications were not enabled when the user logged in via an SSO even though in the config `email.notif_for_new_users` and `email.enable_notifs` were set to `true`. diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py index f08a516a7588..68dbae591618 100644 --- a/synapse/handlers/register.py +++ b/synapse/handlers/register.py @@ -979,16 +979,18 @@ async def _register_email_threepid( if ( self.hs.config.email.email_enable_notifs and self.hs.config.email.email_notif_for_new_users - and token ): # Pull the ID of the access token back out of the db # It would really make more sense for this to be passed # up when the access token is saved, but that's quite an # invasive change I'd rather do separately. - user_tuple = await self.store.get_user_by_access_token(token) - # The token better still exist. - assert user_tuple - token_id = user_tuple.token_id + if token: + user_tuple = await self.store.get_user_by_access_token(token) + # The token better still exist. + assert user_tuple + token_id = user_tuple.token_id + else: + token_id = None await self.pusher_pool.add_pusher( user_id=user_id,