Windows Error Reporting … Fail

I had been planning on using Windows Error Reporting (WER) as the error reporting technology for Window Clippings 3. It seems like a good idea: Microsoft collects minidump files when my application crashes and I can then go and diagnose and repair the problems.

wer

A few years ago I purchased a code signing certificate thinking that I could enroll in WER. I obtained a certificate from Comodo. As it turned out Microsoft only accepts certificates issued by VeriSign so for Window Clippings 3 I decided that I better pay up (VeriSign is expensive) and get one. I made the purchase online but a few days later was basically informed that they only issue certificates to corporations. I’m trading as a sole proprietorship in Canada. Incorporation is a very complicated and costly affair which seems completely unnecessary for a Micro ISV.

I’m not really sure what to do next. Unlike managed code where a stack trace is easily obtained and can help determine the cause of a crash nine times out of ten, Window Clippings is completely native and there’s just nothing quite like a minidump to figure out what went wrong. Microsoft already collects my minidumps but won’t share them with me unless I obtain a VeriSign certificate.

Anybody have any experience with VeriSign as a small business? I was really hoping I wouldn’t have to write my own crash handler and reporting service.

Update: thanks for all the comments. I’ve just been notified that my attempts to convince VeriSign that I am indeed worthy of certification have succeeded. Barring any further complications I should be all set to use WER for error reporting.

Update: I spoke too soon. Now they want a publicly listed phone number and won’t accept my VOIP phone. Sigh.

12 thoughts on “Windows Error Reporting … Fail

  1. Lex Li

    Well, the ultimate solution is to write your own stuffs. It is not that hard as you are already an expert in native land. Right? 🙂

    A lot of large/medium corporates also use their own handlers instead of Microsoft’s.

    Reply
    1. Kenny Kerr Post author

      It’s not because it’s particularly difficult. Microsoft already has the infrastructure to do this. Why would I want to commit the time and resources to developing my own? It’s also better for customers if there is a single user experience for error reporting.

      Reply
      1. Ofek Shilon

        Seems to me that ‘unreasonable alternative cost’ is a good enough answer to the question why commit the time and resources to develop your own. On the customer side, I think typical customers are much more likely to reflexively *ignore* the standard MS report dialog. You have a much better chance of collecting dumps on your own.

      2. Al

        I have to admit, I’m quite impressed that you carry this mentality; I haven’t seen it that much around other Windows developers. While you may have to abandon it in this case, please try to keep it for the future.

      1. Rick Brewster

        Current versions of Paint.NET just toss a crash log onto the desktop with some text at the beginning that says, “This file was created because Paint.NET crashed … please e-mail it to ….” It has the managed stack trace, and a whole ton of other anonymous diagnostic information (CPU type, .NET versions, OS, RAM, etc.).

        Clearly I don’t get all the crash logs. But, you’d be surprised at how many I do get, and how many bugs I’ve fixed with this admittedly cheap mechanism.

  2. Rupert Rawnsley

    I must agree with one respondent that users reflexively close the standard error dialog. This is partly because there is no immediate feedback on progress (no trouble ticket number or hope of a solution) and it is partly because users are conditioned to close dialogs.

    We implemented our own error handling that sends logging information back to base by HTTP SOAP, but half the users still capture a screenshot, paste it into Word, and send it to us by email 🙂

    If our error catcher fails, we would still like to use WER and we are going through the certification process. You might be interested in the 1-year certificate for $99 deal here:

    https://securitycenter.verisign.com/celp/enroll/upsell?promo_code=THEDEAL99&application_locale=VRSN_US&originator=VeriSign:CELP&bundle_id=MSIECS002&enable_options=validity_1

    It’s a full class 3 certificate from Verisign.

    Reply
  3. Jim Fell

    I wouldn’t bother with WER. Use a catch-throw at each level of your application to build up a string containing crash information that prints to a message box or text file, just before the application fails out completely.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s