Fix compatibility with custom default_response_class#62
Open
scriptogre wants to merge 1 commit intomongkok:mainfrom
Open
Fix compatibility with custom default_response_class#62scriptogre wants to merge 1 commit intomongkok:mainfrom
default_response_class#62scriptogre wants to merge 1 commit intomongkok:mainfrom
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When a FastAPI app has a custom
default_response_class, the debug toolbar's API route inherits this default instead of properly returning JSON, causing encoding errors.Reproduce the issue
Error when accessing
/_debug_toolbar?...:This happens because:
HTMLResponsefrom app's defaultHTMLResponsetries to encode the dict as a string → crashSolution
Explicitly set
response_class=JSONResponsefor the debug toolbar API route to ensure it returns JSON regardless of the app's default response class.