There are three types of bugs a user can run up against in Adium:
- Logic flaws (Mistakes in our logic, where we've told Adium to behave incorrectly)
- Exceptions (Small mistakes that Adium catches while running)
- Unexpected quits (Mistakes or errors that Adium is unable to recover from)

Currently, when the user encounters an exception, Adium aborts the particular task it was on and attempts to keep going. While this may sound like a good thing, skipping code that was intended to run can cause some very strange behavior later. What's worse is that the user often doesn't realize they've encountered an error. (This is what we're looking for when we tell you to 'check console.app').

Unexpected quits let the user know something went wrong, and even generate a log to let us know more information about the crash. Unfortunately, fetching these logs and emailing them to us is a pain. Making things more complicated is Apple's 'crash submit' dialog which prompts the user to send Apple a crash report. We don't get reports sent to Apple, and this may trick users into thinking they've reported a crash to us.

We are working on code to simplify the process of sending us Adium's crash logs. We are also working on code to generate and send helpful logs when there is an exception.

This is really exciting for us, because it will result in much more crash/exception reports and ultimately lead to a much stabler Adium. More details will emerge as we have them. :-)