Friday, 23 November 2012

Capture Custom Data With Your Errors

The more context you have around an error, the better it'll help you when debugging. And who understands your application's context better than you!

Starting today, you will be able to record custom information with your errors. It's super simple too! Just create an _errs.meta object, and add anything you want to it!

You can pass the _errs.meta object any number of properties, and the values can either be strings, numbers or booleans. Values with other types will be ignored.

You can even add and remove properties from the _errs.meta object at runtime. So, if your user changes his or her preferences about cats while using your application, you can set _errs.meta.lovesCats = false; when that happens. The tracking script will record the new value lovesCats from that point on whenever an error occurs.

This can be a huge help when debugging your code. Imagine if you could record which user got the error, which action the user was performing at the time, and on which area of your page!

Other improvements

There have also been several improvements to the tracking code. Two hard-to-find bugs have been squashed, overall performance has been improved, browser support has been expanded, resilience has been improved in case our servers are in the middle of a hurricane, and the code is much better tested now. All of this while reducing the code size! (Ok, it only reduced by 4 bytes, but it's something, right?) Just to remind you, the code size doesn't really effect you, because the tracking script doesn't come in the way of your page load time at all, giving you maximum performance at all times.

As always, feedback welcome. I can't wait to see what you will do with this ability to record custom data.


The custom data recorded is put into the same store as the one used for raw error data and shares the same limits. That is, you can currently put in upto 25 MB of data. Beyond that, older data is purged to make room for the new data.

Thursday, 22 November 2012

Raw Error Data

Since about 2 weeks now, I've been recording information about each individual error occurrence. This data was previously being discarded. I thought, why throw away perfectly fine data, if it can be useful in any way to help in debugging?

A couple of minutes ago, I rolled out a UI to start looking at this data. Now, every error details page will show you all the information that we've captured for every occurrence of the error.

Give it a spin, and let me know what you think.


The reason I used to discard this data previously is because it grows really big really quickly. So, for now, I've decided to cap the amount of logs stored. Each project gets 25 MB of storage for these raw logs. If you end up generating more logs than the limit, older log entries are discarded to make room for the new ones.

Though 25 MB might seem small, it's actually quite a bit. Considering that each log line will realistically be much lesser than 0.5kb of data, you can store more than 50,000 individual log entires before older records get purged.

That said, I've not wholly decided on the 25 MB limit, and am open to change my mind. Feedback welcome.

Tuesday, 20 November 2012

Problems with MasterCard Payments

At the outset, I want to apologize for the email notifications you've been getting about "billing attempt failures", or "rebill attempts exceeded". This affects all MasterCard payments. This is not the experience I want to provide, and this ordeal has been hugely embarrassing for me.

I've been using payment services from 2checkout, who seem to have run into an issue with MasterCard payments. They have not been very transparent about the issue, and kept dragging their feet about the problem despite repeated requests to fix it soon. Today they sent an email saying that the issue won't be resolved for another month!

What you can do

If you are one of those who's affected, 2checkout would have already sent you a mail with a link to update your payment information. Please use the link to pick a different payment method (they still support Visa, Amex and Paypal among others). If you only have a MasterCard card, you could update your payment method to use Paypal and make a MasterCard payment through them. You don't need a Paypal account for this.

If you have already updated your payment information, huge thanks to you! You rock!

If you are paying for a new account, you won't have the MasterCard option when you checkout, but you will be able to use any other card, or use Paypal to route your MasterCard transaction.

If either of these is not possible, please get in touch with me at rakeshpai at errorception dot com, and we'll take it from there.

I know that this is annoying for you, and it's annoying for me to have to put you through this. This has been an embarrassing ordeal for me over the last few weeks, and I will continue to chase 2checkout until they resolve this issue. I wholeheartedly apologize again.