Skip to content

"Generic WSGI Request" naming #3094

Closed
Closed
@interDist

Description

@interDist

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

Waiting for: Product Owner

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions