diff --git a/src/atproto/oauth.py b/src/atproto/oauth.py index 3d36f78..75540c0 100644 --- a/src/atproto/oauth.py +++ b/src/atproto/oauth.py @@ -236,15 +236,14 @@ async def pds_authed_req( user: OAuthSession, update_dpop_pds_nonce: Callable[[str], None], body: dict[str, Any] | None = None, -) -> ClientResponse | None: +) -> ClientResponse: dpop_private_jwk = JsonWebKey.import_key(json.loads(user.dpop_private_jwk)) dpop_pds_nonce = user.dpop_pds_nonce access_token = user.access_token - - response: ClientResponse | None = None + response: ClientResponse # Might need to retry request with a new nonce. - for i in range(2): + for _ in range(2): dpop_jwt = _pds_dpop_jwt( "POST", url, @@ -272,7 +271,7 @@ async def pds_authed_req( continue break - return response + return response # pyright: ignore[reportPossiblyUnboundVariable] response is assigned inside the loop def _client_assertion_jwt( diff --git a/src/main.py b/src/main.py index 045d59f..37d62a4 100644 --- a/src/main.py +++ b/src/main.py @@ -1,7 +1,7 @@ import asyncio import json -from aiohttp.client import ClientSession +from aiohttp.client import ClientResponse, ClientSession from flask import Flask, g, session, redirect, render_template, request, url_for from flask_htmx import HTMX, make_response as htmx_reponse from typing import Any @@ -310,7 +310,11 @@ async def put_record( update_dpop_pds_nonce=update_dpop_pds_nonce, ) - return response is not None and response.ok + if not response.ok: + app.logger.warning(f"put_record failed with status {response.status}") + app.logger.warning(await response.text()) + + return response.ok def _is_did_blocked(did: str) -> bool: