summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--users/models/identity.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/users/models/identity.py b/users/models/identity.py
index 5056ce0..452bde7 100644
--- a/users/models/identity.py
+++ b/users/models/identity.py
@@ -270,12 +270,15 @@ class Identity(StatorModel):
(actor uri, canonical handle) or None, None if it does not resolve.
"""
domain = handle.split("@")[1]
- async with httpx.AsyncClient() as client:
- response = await client.get(
- f"https://{domain}/.well-known/webfinger?resource=acct:{handle}",
- headers={"Accept": "application/json"},
- follow_redirects=True,
- )
+ try:
+ async with httpx.AsyncClient() as client:
+ response = await client.get(
+ f"https://{domain}/.well-known/webfinger?resource=acct:{handle}",
+ headers={"Accept": "application/json"},
+ follow_redirects=True,
+ )
+ except (httpx.ReadTimeout, httpx.ReadError, httpx.RemoteProtocolError):
+ return None, None
if response.status_code >= 400:
return None, None
data = response.json()
@@ -303,7 +306,7 @@ class Identity(StatorModel):
headers={"Accept": "application/json"},
follow_redirects=True,
)
- except (httpx.ReadTimeout, httpx.ReadError):
+ except (httpx.ReadTimeout, httpx.ReadError, httpx.RemoteProtocolError):
return False
if response.status_code >= 400:
return False