Skip to content

Commit d68f002

Browse files
committed
Handle 404 on user presence check on matrix
Fix #2259
1 parent a9cc413 commit d68f002

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

raiden/network/transport/matrix.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,14 @@ def start(
209209
def start_health_check(self, node_address):
210210
if not self._running:
211211
return
212-
node_address_hex = to_normalized_address(node_address)
213-
self.log.debug('HEALTHCHECK', peer_address=node_address_hex)
212+
214213
with self._health_semaphore:
214+
if node_address in self._address_to_userids:
215+
return # already healthchecked
216+
217+
node_address_hex = to_normalized_address(node_address)
218+
self.log.debug('HEALTHCHECK', peer_address=node_address_hex)
219+
215220
candidates = [
216221
self._get_user(user)
217222
for user in self._client.search_user_directory(node_address_hex)
@@ -750,9 +755,13 @@ def _handle_presence_change(self, event):
750755

751756
def _get_user_presence(self, user_id: str) -> UserPresence:
752757
if user_id not in self._userid_to_presence:
753-
self._userid_to_presence[user_id] = UserPresence(
754-
self._client.get_user_presence(user_id),
755-
)
758+
try:
759+
presence = UserPresence(
760+
self._client.get_user_presence(user_id),
761+
)
762+
except MatrixRequestError:
763+
presence = UserPresence.UNKNOWN
764+
self._userid_to_presence[user_id] = presence
756765
return self._userid_to_presence[user_id]
757766

758767
def _update_address_presence(self, address):

0 commit comments

Comments
 (0)