diff --git a/synapse/groups/attestations.py b/synapse/groups/attestations.py
index 2e252b66a7..0bd73b6a61 100644
--- a/synapse/groups/attestations.py
+++ b/synapse/groups/attestations.py
@@ -139,6 +139,7 @@ class GroupAttestionRenewer(object):
"Incorrectly trying to do attestations for user: %r in %r",
user_id, group_id,
)
+ yield self.store.remove_attestation_renewal(group_id, user_id)
return
yield self.transport_client.renew_group_attestation(
diff --git a/synapse/storage/group_server.py b/synapse/storage/group_server.py
index 9e63db5c6c..ed2ee61ad2 100644
--- a/synapse/storage/group_server.py
+++ b/synapse/storage/group_server.py
@@ -1086,6 +1086,24 @@ class GroupServerStore(SQLBaseStore):
desc="update_remote_attestion",
)
+ def remove_attestation_renewal(self, group_id, user_id):
+ """Remove an attestation that we thought we should renew, but actually
+ shouldn't. Ideally this would never get called as we would never
+ incorrectly try and do attestations for local users on local groups.
+
+ Args:
+ group_id (str)
+ user_id (str)
+ """
+ return self._simple_update_one(
+ table="_simple_delete",
+ keyvalues={
+ "group_id": group_id,
+ "user_id": user_id,
+ },
+ desc="remove_attestation_renewal",
+ )
+
@defer.inlineCallbacks
def get_remote_attestation(self, group_id, user_id):
"""Get the attestation that proves the remote agrees that the user is
|