From d55ceb2df203ec85bdcd24c5d679cf0efd519c01 Mon Sep 17 00:00:00 2001 From: nex Date: Thu, 27 Jun 2024 14:40:26 +0100 Subject: [PATCH] Fix server erroring when homeserver is unavailable --- src/server.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/server.py b/src/server.py index 1901fb5..13b0432 100644 --- a/src/server.py +++ b/src/server.py @@ -271,10 +271,13 @@ def preview_url( else: return MISSING_TOKEN - response = httpx.get( - domain + "/_matrix/client/r0/account/whoami", - headers={"Authorization": f"Bearer {access_token}"} - ) + try: + response = httpx.get( + domain + "/_matrix/client/r0/account/whoami", + headers={"Authorization": f"Bearer {access_token}"} + ) + except httpx.NetworkError as e: + raise HTTPException(504, detail=f"Failed to contact homeserver for authentication: {e}") if response.status_code != 200: return INVALID_TOKEN @@ -334,7 +337,7 @@ def preview_url( e.response.status_code, f"Failed to fetch {e.response.url} - HTTP {e.response.status_code}: {e.response.text}" ) - except httpx.NetworkError as e: + except (httpx.NetworkError, ConnectionError) as e: logging.debug(f"Failed to fetch {url}", exc_info=True) raise HTTPException(502, f"Failed to fetch {url} - {e}")