From 33bc777bfd1980d0d1db310d520b4e186bb6c9ee Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 12 Dec 2021 21:15:01 +0200 Subject: [PATCH] Include unhandled error body in force-JSON middleware --- maubot/management/api/middleware.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/maubot/management/api/middleware.py b/maubot/management/api/middleware.py index ce9b253..fa04edb 100644 --- a/maubot/management/api/middleware.py +++ b/maubot/management/api/middleware.py @@ -15,6 +15,7 @@ # along with this program. If not, see . from typing import Callable, Awaitable import logging +import base64 from aiohttp import web @@ -52,7 +53,12 @@ async def error(request: web.Request, handler: Handler) -> web.Response: elif ex.status_code == 405: return resp.method_not_allowed return web.json_response({ - "error": f"Unhandled HTTP {ex.status}", + "httpexception": { + "headers": {key: value for key, value in ex.headers.items()}, + "class": type(ex).__name__, + "body": ex.text or base64.b64encode(ex.body) + }, + "error": f"Unhandled HTTP {ex.status}: {ex.text[:128] or 'non-text response'}", "errcode": f"unhandled_http_{ex.status}", }, status=ex.status) except Exception: