polar
polar copied to clipboard
Bug in OpenTelemetry causes requests with non-UTF8 headers to fail
Sentry Issue: SERVER-1VC
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 71: invalid start byte
(1 additional frame(s) were not displayed)
...
File "starlette/middleware/errors.py", line 186, in __call__
raise exc
File "starlette/middleware/errors.py", line 164, in __call__
await self.app(scope, receive, _send)
File "/app/server/.venv/lib/python3.12/site-packages/opentelemetry/instrumentation/asgi/__init__.py", line 579, in __call__
attributes = collect_request_attributes(scope)
File "/app/server/.venv/lib/python3.12/site-packages/opentelemetry/instrumentation/asgi/__init__.py", line 323, in collect_request_attributes
http_user_agent = asgi_getter.get(scope, "user-agent")
File "/app/server/.venv/lib/python3.12/site-packages/opentelemetry/instrumentation/asgi/__init__.py", line 256, in get
_value.decode("utf8")
Known bug in OpenTelemetry ASGI. A fix is merged but not yet released: https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2837
Just upgrade the package when it is released to solve the issue.