Search can return/filter different results

PhilAI

Posted on
Mar 28 2019

Hi,

We only have two fields in our custom data. The first one I can search on (ClientName), but the second (Tracking Number) is never found; e.g. https://app.raygun.io/crashreporting/9yz0zk/errors/1482354796

ClientName: "St John's School" Tracking Number: "1VCH4XLR-NSZW-NZYJ-8PNA-V4PLO3WS1CB9"

On top of this, if I search for url: actionsendemail.asp then it finds no matching errors even this exception contains this text in the URL.

However, if I search for any part of the URL path; i.e. url : "outbound/configuration" Then this exception is returned in the search results?! The moment I introduce any part of page name, nothing.

Furthermore, if I search for url : "outbound/configuration" and then filter by Host = stjohnssurrey.isams.cloud, I get no results again, but filtering by Machine Name = 156.67.246.254 does return this exception.

Our technical support rely on the Tracking Number to find the exceptions, and failing that at least they could search for the page, but even that is tempremental.

Am I doing something wrong here? Or are these bugs?

Many thanks.


Jason Fauchelle

Raygun

Posted on
Apr 05 2019

Hi Phil,

Thanks again for bringing this to our attention. As mentioned through the other support channel, these issues are now fixed. Please let us know if you have further questions.

-Jason Fauchelle


PhilAI

Posted on
Apr 05 2019

Sharing the solution sent to me via e-mail:

Filtering by Host = stjohnssurrey.isams.cloud is not working. I have been able to reproduce this and find the reason why. As crash reporting data flows in to Raygun, we extract certain property values from the payload for indexing, which drives our search/filtering capabilities. This is done by deserializing the payload into a JObject and then using string paths to fetch out the properties we want.

Unfortunately this approach is case sensitive. Since different Raygun providers have different casing due to language standards, we first check the casing of the "error"/"Error" section of the Raygun payload. This then determines the casing to check throughout the rest of the payload. There are 4 possible casings to fetch out the host name: "request.headers.hostName", "request.headers.host", "Request.Headers.HostName", "Request.Headers.Host".

The exception report that you linked in the forum post is coming from a custom Raygun provider called "iSAMS-ClassicASP-RayGun". The "error" section is lowercase, and the host is under "request.headers.HOST". The all caps HOST field here is the root cause of the issue. You'll find that "stjohnssurrey.isams.cloud" does show up as an option when you start creating a filter because that host is also available in other payloads in the same time range that does have the expected casing.

We have updated our code to ensure HOST comes through in a supported casing; we were adding our Request Id as a Tag anyway so it was not a difficult one for us to resolve.

Many thanks for your help.


Reply