Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Raven.js configuration for logging JavaScript exceptions to Sentry (https://getsentry.com/). Without the added ignore options, you'll quickly find yourself swamped with unactionable exceptions due to shoddy browser plugins and 3rd party script errors.
<!-- Raven.js Config -->
<script src="{{ JS_PATH }}/lib/raven.js" type="text/javascript"></script>
<script type="text/javascript">
// Ignore list based off: https://gist.github.com/1878283
var ravenOptions = {
// Will cause a deprecation warning, but the demise of `ignoreErrors` is still under discussion.
// See: https://github.com/getsentry/raven-js/issues/73
ignoreErrors: [
// Random plugins/extensions
'top.GLOBALS',
// See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html
'originalCreateNotification',
'canvas.contentDocument',
'MyApp_RemoveAllHighlights',
'http://tt.epicplay.com',
'Can\'t find variable: ZiteReader',
'jigsaw is not defined',
'ComboSearch is not defined',
'http://loading.retry.widdit.com/',
'atomicFindClose',
// Facebook borked
'fb_xd_fragment',
// ISP "optimizing" proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)
// See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy
'bmi_SafeAddOnload',
'EBCallBackMessageReceived',
// See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx
'conduitPage',
// Generic error code from errors outside the security sandbox
// You can delete this if using raven.js > 1.0, which ignores these automatically.
'Script error.'
],
ignoreUrls: [
// Facebook flakiness
/graph\.facebook\.com/i,
// Facebook blocked
/connect\.facebook\.net\/en_US\/all\.js/i,
// Woopra flakiness
/eatdifferent\.com\.woopra-ns\.com/i,
/static\.woopra\.com\/js\/woopra\.js/i,
// Chrome extensions
/extensions\//i,
/^chrome:\/\//i,
// Other plugins
/127\.0\.0\.1:4001\/isrunning/i, // Cacaoweb
/webappstoolbarba\.texthelp\.com\//i,
/metrics\.itunes\.apple\.com\.edgesuite\.net\//i
]
};
// Configure Raven and install default handler to capture uncaught exceptions
Raven.config('{{ SENTRY_DSN }}', ravenOptions).install();
</script>
@acdha

This comment has been minimized.

Copy link

acdha commented Mar 5, 2013

Thanks for the collection. Here are a couple of other ones I've noticed:

bmi_SafeAddOnload

ISP "optimizing" proxy - Cache-Control: no-transform seems to reduce this.

EBCallBackMessageReceived
conduitPage

Some random toolbar: http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx

It probably also makes sense to block ^chrome:// in ignoreUrls

@mattrobenolt

This comment has been minimized.

Copy link

mattrobenolt commented Mar 5, 2013

👍, I like this. Do you mind if I add these to the docs?

@impressiver

This comment has been minimized.

Copy link
Owner Author

impressiver commented Mar 5, 2013

@acdha: Thanks for the additions, I updated the gist... should probably test it too.

@mattrobenolt: Not at all, glad someone found it useful.

@nikgraf

This comment has been minimized.

Copy link

nikgraf commented Mar 6, 2013

Awesome, thanks for sharing

@acdha

This comment has been minimized.

Copy link

acdha commented Mar 11, 2013

One other addition which I should have included earlier: the filename is reported as miscellaneous_bindings, which appears to be specific to Chrome extensions: http://stackoverflow.com/questions/13140857/what-are-miscellaneous-bindings-and-why-are-they-giving-me-a-port-error

@mattrobenolt

This comment has been minimized.

Copy link

mattrobenolt commented Mar 12, 2013

Added to docs: http://raven-js.readthedocs.org/en/latest/tips/index.html#decluttering-sentry

Feel free to submit pull requests for additions. :)

@mattrobenolt

This comment has been minimized.

Copy link

mattrobenolt commented Mar 12, 2013

Also, FWIW, I've removed the deprecation warning for ignoreErrors. Apparently it's a lot more useful than I thought. ;)

@mattvagni

This comment has been minimized.

Copy link

mattvagni commented Jul 15, 2013

This is pure awesome. Thanks guys.

@pckhoi

This comment has been minimized.

Copy link

pckhoi commented Mar 6, 2014

Guys, do you know how to ignore errors from IOS devices? Can I just add "IOS" to the ignoreErrors list?

@MarkusPint

This comment has been minimized.

Copy link

MarkusPint commented Oct 13, 2015

Iznice

Iznice

@josketres

This comment has been minimized.

Copy link

josketres commented Mar 31, 2016

@pckhoi you can use a custom filter to filter out all IOS devices . See shouldSendCallback in https://docs.getsentry.com/hosted/clients/javascript/config/

@haydenbleasel

This comment has been minimized.

Copy link

haydenbleasel commented Jul 31, 2016

@impressiver

// Firefox extensions
/^resource:\/\//i

Used for Firefox resources / extensions re: this. They also use chrome:// for themes but we're already tackling this for Google Chrome.

@ninty9notout

This comment has been minimized.

Copy link

ninty9notout commented Oct 5, 2017

@impressiver @mattrobenolt

// Ignore Google flakiness
/\/(gtm|ga|analytics)\.js/i

Some third party "marketing specialists" can't write JS and are ruining our Sentry reporting. These oughta ignore any errors thrown by GTM. Also thrown in the old analytics and the new universal analytics files for good measure.

@abhishek-parmar1

This comment has been minimized.

Copy link

abhishek-parmar1 commented Apr 14, 2018

Thanx its awesome.

@Zhouzi

This comment has been minimized.

Copy link

Zhouzi commented May 22, 2018

I'd suggest adding "Failed to fetch" to "ignoreErrors":

var ravenOptions = {
  ignoreErrors: [
	...
    // Network errors such as going offline or being blocked by a proxy
    'Failed to fetch'
  ],
  ...
@fcsonline

This comment has been minimized.

Copy link

fcsonline commented Apr 30, 2019

Are you facing errors from XiaoMi devices? We have been investigating without success.

We are getting errors like this one:

TypeError: Cannot read property 'title' of null

Some user agents:

Mozilla/5.0 (Linux; U; Android 7.1.2; es-es; Redmi 4X Build/N2G47H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.6.3-g
Mozilla/5.0 (Linux; U; Android 8.1.0; es-es; Redmi S2 Build/OPM1.171019.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.6.3-g
@Kichrum

This comment has been minimized.

Copy link

Kichrum commented Jun 21, 2019

Are you facing errors from XiaoMi devices? We have been investigating without success.

We are getting errors like this one:

TypeError: Cannot read property 'title' of null

Some user agents:

Mozilla/5.0 (Linux; U; Android 7.1.2; es-es; Redmi 4X Build/N2G47H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.6.3-g
Mozilla/5.0 (Linux; U; Android 8.1.0; es-es; Redmi S2 Build/OPM1.171019.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.6.3-g

Yep, it's from Readability.js for Mi Browser. To fix this just add an invisible div to your SPA's index.html tag: <div class="hidden">Loading...</div> and css in a separate stylesheet file .hidden {display: none;} (note that <div style="display: none;">Loading...</div> won't fix). So that stupid Mi Browser will think that there is something to read on your website (instead of single empty <div>) and it won't throw this error anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.