From 68941b97f6b3cdcfb33de598c0b5d227e58e22cd Mon Sep 17 00:00:00 2001 From: giles Date: Sat, 21 Feb 2026 22:52:30 +0000 Subject: [PATCH] Fix sign_request call in AP delivery handler Parse inbox URL into path+host instead of passing url= which doesn't exist. Co-Authored-By: Claude Opus 4.6 --- events/handlers/ap_delivery_handler.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/events/handlers/ap_delivery_handler.py b/events/handlers/ap_delivery_handler.py index cc8a69a..907f38b 100644 --- a/events/handlers/ap_delivery_handler.py +++ b/events/handlers/ap_delivery_handler.py @@ -53,17 +53,20 @@ async def _deliver_to_inbox( ) -> bool: """POST signed activity to a single inbox. Returns True on success.""" from shared.utils.http_signatures import sign_request + from urllib.parse import urlparse import json body_bytes = json.dumps(body).encode() key_id = f"https://{domain}/users/{actor.preferred_username}#main-key" + parsed = urlparse(inbox_url) headers = sign_request( - method="POST", - url=inbox_url, - body=body_bytes, private_key_pem=actor.private_key_pem, key_id=key_id, + method="POST", + path=parsed.path, + host=parsed.netloc, + body=body_bytes, ) headers["Content-Type"] = AP_CONTENT_TYPE