Description
How do you use Sentry?
Sentry Saas (sentry.io)
Version
2.2.1
Steps to Reproduce
About half a year ago I started seeing more and more "Generic WSGI Request"s in the Sentry panels. At first I was sure the problem is with our code (even though we use the bare minimum sentry_init
with DjangoIntegration
, the only customization being a TracesSampler
). But after multiple debug sessions I believe I isolated the core issue to this commit: 0ce9021, and specifically to the addition of lines 73–80 0ce9021#diff-2d58ee5eb379689063d5e76a9d48bd6945136fb45533809ef5b39b480afb250cR73-R80 (return self._new_style_group_matcher.sub(...)
in RavenResolver._simplify
).
For URL patterns which do not contain a group (e.g., a simple “account/”), the regex replacement returns a None
, which is then concatenated to a prefix
(which is a str
), on line 142 0ce9021#diff-2d58ee5eb379689063d5e76a9d48bd6945136fb45533809ef5b39b480afb250cR142.
This causes a TypeError exception “expected string or bytes-like object” in _set_transaction_name_and_source
, and as a result, scope.set_transaction_name
is not called, even not with the request.path_info
fallback. Thus the “Generic WSGI Request” name set by SentryWsgiMiddleware litters the logs...
Expected Result
The path of the request is used as a fallback if the name cannot be obtained for some reason.
Actual Result
Each request which does not have a group in its URL pattern is named “Generic WSGI Request”.
Metadata
Metadata
Assignees
Type
Projects
Status