Wednesday 7 September 2011

Errors on https are now supported!

It's been less than three weeks since errorception went live, and the feedback has been awesome! I've been iterating quickly to improve based on your feedback. The deployment I did earlier today was a significant one, and it deserves a whole blog post.

  • HTTPS is now supported. This is the big one. So far, the tracking snippet used to disable itself on https pages. Now, this restriction has been lifted. You can now track errors on secure pages as well.
  • Smaller tracking snippet. The tracking snippet has lost 10% of it's weight, giving it even higher load-time performance. In the process, it has also become slightly faster at runtime because of changes in the way some parameters were being recorded. #win
  • Better debugging. The previous tracking snippet was swallowing up errors, so it was very hard to debug your code. The new snippet doesn't swallow up errors, allowing your regular tools (Firebug, Web Inspector, etc.) to log the error as it happens in the debugging console.
  • Batched upload of errors. One the lessons I learnt was that in many cases if there is an error in the JS, it has a cascading effect and creates several multiple errors. For example, if jQuery didn't load correctly for some reason all the plugins and your code would throw separate errors. Previously, each of these errors were pushed to the server separately. This caused many problems. For example, in some browsers it hit the http connection limit, essentially queueing up errors. This meant that newer errors might never be posted to the server if the user navigated away. Also, it's terribly inefficient to create so many http connections anyway. Now, the errors are batched up on the client before they are posted to the server, so that several errors can be sent to server at one time. This is far more efficient.
Unfortunately, to take advantage of most of these features you'll have to modify the tracking snippet on your site. I encourage you to login and get the new snippet at the earliest. Though I've maintained backwards compatibility for now, you should update as soon as possible to take advantage of the new features.

As always, your feedback and thoughts are welcome.