Thursday 11 August 2011

Introducing Errorception

I've been a client-side JavaScript developer for most of my professional life. Being a JS developer is very different from being a server-side web developer, and most people don't understand or appreciate the difference. This post is about one of those differences.

In sharp contrast to server-side setups, my JS doesn't run in controlled environments - I don't have any control on either the runtime or the OS, or for that matter almost any aspect of how the application will run. It's code running literally in the wild.

Several times, users call in to say that "the website doesn't work", and I end up having no idea why. I have no insight into the end-user's machine or browser. It's like debugging with a blindfold on. It's beyond painful. It worries me that for every user who called in, there might be many more who didn't. At best (if you can call it that) it's a horrid user-experience; at worst it's lost revenue. Dayam!

It doesn't have to be that way. Errorception aims to solve a simple problem: Get some insight into what is happening at the user's end when an error occurs. Gather as much data as possible to describe the state of the runtime when your application encountered the error. And do this with a strong philosophical stand: that any performance hit is simply not tolerable, whether run-time or load-time.

As a teaser, here's a screenshot of the errorception admin UI on my current dev box. It's still rather early, and things are likely to change. If you have any thoughts, I'd love to hear from you.

If you've signed up for early access at, I'll be sending you invites in a couple of days, and you'll get to use the app for free for a limited period. If you haven't signed up, I urge you to, so that can get priority access.


  1. hi dojo,
    one suggestion is to also show duplicate errors
    this will show that the user is trying again aka. is frustrated :-) and will not clutter up the list

    also can u make the tabs look more like tabs. maybe an easy fix for this is to remove the lower border for "dashboard"

    PS: have u sent the invites yet?

  2. Deepak,

    Multiple errors are already combined based on browser+line number+script file in which the error occurred to keep the duplication noise to a minimum. The sparkline on the right indicates how frequently the error has been happening. Also, you can sort on "Frequency", which sorts the group of errors (if you want to call it that, which is a line-item) based on the number of individual error occurrences in each one.

    Thanks for the feedback though. Keep it coming!