Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Do not assume a member is still in the room when generating email not…
Browse files Browse the repository at this point in the history
…ifications.
  • Loading branch information
clokep committed Jan 28, 2021
1 parent a78016d commit 06aeeed
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
1 change: 1 addition & 0 deletions changelog.d/9257.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix long-standing KeyError in synapse.push.mailer in get_message_vars.
13 changes: 9 additions & 4 deletions synapse/push/mailer.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,10 +431,15 @@ async def get_message_vars(
if event.type != EventTypes.Message and event.type != EventTypes.Encrypted:
return None

sender_state_event_id = room_state_ids[("m.room.member", event.sender)]
sender_state_event = await self.store.get_event(sender_state_event_id)
sender_name = name_from_member_event(sender_state_event)
sender_avatar_url = sender_state_event.content.get("avatar_url")
sender_state_event_id = room_state_ids.get(("m.room.member", event.sender))
if sender_state_event_id:
sender_state_event = await self.store.get_event(sender_state_event_id)
sender_name = name_from_member_event(sender_state_event)
sender_avatar_url = sender_state_event.content.get("avatar_url")
else:
# The sender is no longer in the room for some reason.
sender_name = event.sender
sender_avatar_url = None

# 'hash' for deterministically picking default images: use
# sender_hash % the number of default images to choose from
Expand Down

0 comments on commit 06aeeed

Please sign in to comment.