“Don’t take it so hard, you work effectively in this ultra-specific area of technology than. You made a simple mistake. You’ve admitted and acknowledged it, and you’ve learned from it. And it had no identified impact on customers. Good!”
These are the words I told myself a few minutes ago, during cooling down from a 4-5 hour analysis and troubleshooting on my vcard system. To reproduce the bug would require very specific sets of criteria, and the words above are a coping mechanism. The ultra-specific area is at the crossroad of the vcard (online business card), embedded binary data, and varying mobile OS version support for the specific vcards.
There is a business card system I built, that supports a wide range of features. There are different outputs of the system, not only vcards. Each output has been tested across many mobile phones including all BlackBerry hardware and OS versions, iOS, Android 2.x and up, etc. In some of these phones or operating systems quirks are found that cause vcards to fail. They’re incomplete or twisted OS-level implementations of the vcard specification, and as many of the flaws as I can find, I’ve adapted and so have developed a baseline system in PHP. This means it’s extremely compatible.
A new flaw was discovered very recently. Fixing it consumed many hours. Now having it fixed, the sad truth is the flaw wasn’t in the specific operating system versions, but my own fault. Fortunately, this was such an insignificant flaw that it didn’t affect any of the mobile phones or operating systems listed above, except two very specific OS versions of Android. All other Android OS supported the vcard files where the bug was present, and continued operating without fail.
So, I’m feeling good, because a bug is fixed. I tell myself that no one else could have fixed it and would rather have accepted it as out of one’s own control. And, it helps that the bug affected very few, if any people.