1 files changed, 13 insertions, 2 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index f72b81d419..a3d7739ead 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -2599,8 +2599,19 @@ class FederationHandler(BaseHandler):
original_invite_id, allow_none=True
)
if original_invite:
- display_name = original_invite.content["display_name"]
- event_dict["content"]["third_party_invite"]["display_name"] = display_name
+ # If the m.room.third_party_invite event's content is empty, it means the
+ # invite has been revoked.
+ if original_invite.content:
+ display_name = original_invite.content["display_name"]
+ event_dict["content"]["third_party_invite"]["display_name"] = display_name
+ else:
+ # Don't discard or raise an error here because that's not the right place
+ # to do auth checks. The auth check will fail on this invite because we
+ # won't be able to fetch public keys from the m.room.third_party_invite
+ # event's content (because it's empty).
+ logger.info(
+ "Found invite event for third_party_invite but it has been revoked"
+ )
else:
logger.info(
"Could not find invite event for third_party_invite: %r", event_dict
|