Hacker News new | ask | show | jobs
by dmethvin 5193 days ago
It sounds like Airbrake was very helpful. It is telling you that users are experiencing errors frequently, something you didn't know before. If, for example, the "google javascript never loaded" situation is common you'd want to either fix that or have your own script work around it -- at the very least, let the user know why the page is broken and that it isn't your fault.

Line 0 script errors can be from dynamically loaded code, such as JSONP requests or `eval()` code.

2 comments

Well... Yes. It was helpful for that reason. I waded through many of the errors and traced them back to actual lines of code. It just so happens that many of the errors weren't particularly useful to me. I.e., not actionable.

Our browser tests include IE7, IE8, IE9, Safari, Firefox and Chrome. None of those errors are present in our tests. As you note, in many of the cases I could wrap the errors with notifications to the user.

But, really, if the google variable isn't loaded for a small set of users and I can't easily configure a test system that can reproduce it, I'm not going to take the time right now. I have too many other pressing things on my list.

The "google" variable is often not loaded for people who use Adblock or similar extensions that block social media plugins. You can simply check that "google" exists before running the code that depends on it:

    if (typeof google !== "undefined") {
        // run google code here
        google.magic();
    }
I understand deadlines, and yes you may not be able to do more than explain to the user that there is a problem out of your control. But don't diss Airbrake because you don't have time to investigate and/or fix. They're not sayin' you have to fix it, they're just sayin'.
Just to clarify... I love Airbrake. Apologies if it didn't come across as that way. I use it on every site and app we create.
FF/Chorme/Safari also give the Line 0 "script errors" when an error occurs in any JS file that isn't on your domain (IE jquery from a CDN, 3-rd party scripts, etc). This is a cross-origin security feature.