From 69230e83befaa8c7b35724acab47199f84238bfd Mon Sep 17 00:00:00 2001 From: Christian Tanul Date: Sun, 14 Sep 2025 11:08:44 +0300 Subject: [PATCH] Fix compatibility with apps using custom default_response_class Explicitly set response_class=JSONResponse for debug toolbar API route to prevent conflicts when FastAPI apps override default_response_class (e.g., to HTMLResponse). Without this, the toolbar returns JSON data but inherits HTMLResponse, causing encoding errors. --- debug_toolbar/middleware.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index 0f05337..66ba0e7 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -10,6 +10,7 @@ from fastapi.responses import StreamingResponse from fastapi.staticfiles import StaticFiles from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint +from starlette.responses import JSONResponse from starlette.routing import NoMatchFound from starlette.types import ASGIApp @@ -44,6 +45,7 @@ def init_toolbar(self) -> None: self.settings.API_URL, name="debug_toolbar.render_panel", include_in_schema=False, + response_class=JSONResponse, )(self.require_show_toolbar(render_panel)) self.router.mount(