summaryrefslogtreecommitdiff
path: root/synapse/handlers/directory.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/handlers/directory.py')
-rw-r--r--synapse/handlers/directory.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/synapse/handlers/directory.py b/synapse/handlers/directory.py
index 8ca5f60b..7ee5c47f 100644
--- a/synapse/handlers/directory.py
+++ b/synapse/handlers/directory.py
@@ -204,6 +204,10 @@ class DirectoryHandler:
)
room_id = await self._delete_association(room_alias)
+ if room_id is None:
+ # It's possible someone else deleted the association after the
+ # checks above, but before we did the deletion.
+ raise NotFoundError("Unknown room alias")
try:
await self._update_canonical_alias(requester, user_id, room_id, room_alias)
@@ -225,7 +229,7 @@ class DirectoryHandler:
)
await self._delete_association(room_alias)
- async def _delete_association(self, room_alias: RoomAlias) -> str:
+ async def _delete_association(self, room_alias: RoomAlias) -> Optional[str]:
if not self.hs.is_mine(room_alias):
raise SynapseError(400, "Room alias must be local")