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.