Closed
Description
On view that generates a PNG image, django-debug-toolbar alert panel crashes:
Traceback (most recent call last):
File "/home/nijel/weblate/weblate/.venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/home/nijel/weblate/weblate/.venv/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py", line 169, in __call__
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/nijel/weblate/weblate/.venv/lib/python3.11/site-packages/debug_toolbar/middleware.py", line 94, in __call__
panel.generate_stats(request, response)
File "/home/nijel/weblate/weblate/.venv/lib/python3.11/site-packages/debug_toolbar/panels/alerts.py", line 146, in generate_stats
html_content = response.content.decode(response.charset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
The response is <HttpResponse status_code=200, "image/png">
and doesn't have charset
set. In this case charset property falls back to the default, what happens to be 'utf-8'.
I think it should check response.headers["Content-Type"]
if the response is something what makes sense to decode before doing so here:
Metadata
Metadata
Assignees
Labels
No labels