Recently we had an unpleasant communication with one of our users who claims that our application sent an error report to us without his consent. Needless to say, we really take a special care about your privacy from the day one of our existence, avoiding any “sneaky” practices that lot of companies utilized until few years ago, when they still weren’t illegal. Ethics is and was the first law that we choose to oblige to.
That’s why this kind accusations immediately raised our alarm and we started to test our bug reporting routine in order to find and fix this misbehavior as soon as possible. However, all our tests went fine and we couldn’t reproduce the problem this user is referring to.
Regardless of that, we have left open the possibility that there’s either a bug or a misunderstanding causing this, and tried to get more information from him. Unfortunately, not just that he was not able to help, but his e-mails also contained some contrastive descriptions, let alone an attitude that was preventing any rational communication.
Considering that, and the fact that no one ever complained about this issue before, we would like to be sure: has any of our applications ever sent a bug report to us without your permission? If yes, please let us know as soon as possible so we can take further actions.
What’s error reporting?
“Hunting” bugs and crashes without any details is a “mission impossible”, as all that you get is a description like “Access violation at address 004E046E in module ‘Application.exe’. Read of address 000001B4.” or “Range check error”. With these alone we can’t do much – they barely inform us about error type and nothing else. That’s why any developer who’s serious about building a stable software intended for distribution to wide audience can’t imagine doing it without some error logging library, either built in-house or purchased from another vendor. For this purpose we use great EurekaLog.
These reports usually contain basic information that could affect program running: operating system with a version, amount of RAM, HDD, processor type and speed, running processes, etc. Most useful part of this report is a so called call stack, which shows us exactly in which function of our code problem occurred and what other functions invoked it. Also, there’s more information useful only to some types of applications: computer and user name, LAN IP address, etc. Sometimes, when call stack doesn’t suffice to locate an error, there’s a assembler code, computer register values, short memory content (from this specific application) and, if user agrees, a screen shot.
How does it work in our applications?
As error reporting function should be and is completely voluntary, if error happens the first window that you see looks like this:
As you can see, there are two buttons at the bottom: “Send Error Report” and “Don’t Send“, so user has a clear choice to send it to us or not. There are also a two optional placeholders for your description and Email address (useful in case we have additional questions about the error).
In the middle of the window there’s also a “click here” link that you can use to inspect data this report contains before sending it. If you click on it, you’ll see a window like this:
At the left there are two checkboxes: “Send this error via Internet” and “Attach a Screenshot image“. By turning them off you can, once again, make a decision about sending. There’s also a convenient checkbox at the right (“Copy to Clipboard“), in case you want to send us error report manually by using your Email client (with some editing, if you wish).
It’s important to say that we don’t know who sent an error report, unless you explicitly leave us an Email address or name (in the first window) or send us a follow-up message pointing it out.
We hope that this article resolves any questions that our error reporting could raise, but feel free to contact us if you have any additional concerns.