Closed
Description
openedon Aug 26, 2021
Describe the bug
When HTTP Header contains characters (UTF-8) like one of ş,ğ,ü,ö,ç
(Especially ğ
), Sentry unable to report exception to Server due to conversion error.
To Reproduce
- Set a header for example:
my_header: Tekirdağ
and send request to your endpoint that produces an error or captures a message. - It will fail because
Tekirdağ
word contains non-ascii character.
Event sending failed: "\xC4" from ASCII-8BIT to UTF-8
Unreported Event: Encoding::UndefinedConversionError: "\xC4" from ASCII-8BIT to UTF-8
Event capturing failed: "\xC4" from ASCII-8BIT to UTF-8
The root cause is here:
# Output
{"X-Forwarded-For"=>"***",
"Host"=>"g.dev",
"X-Real-Ip"=>"***",
"X-Forwarded-Proto"=>"https",
"Connection"=>"close",
"User-Agent"=>"insomnia/2021.4.1",
"my_header"=>"Tekirda\xC4\x9F", # <<-- Here :)
"Accept"=>"*/*",
...
I've solved this by using a middleware that does 'Tekirdağ'.force_encoding('utf-8')
and replace in @app.call(env)
that worked but i cannot do this for every header or project...
Expected behavior
Error / Message should be reported.
Actual behavior
Sentry is not be able to send report to the server...
Environment
- Ruby Version: 3.0.1
- SDK Version: 4.6.5
- Integration Versions (if any):
- Rails 6.1.4.1 with Puma 5.4.0
Sentry Config
Sentry.init do |config|
# Very basic setup given by Sentry.io
end
Activity