The Components Database Manager of Windows XP Embedded Studio has a very stupid bug: if you create a repository with no files, it became unable to upgrade it because it's « unable to erase the files in the repository .» A wild guest is that the M$ programmer simply has just check if the function return an error, whatever the error is including expected one, and completly failed the import if this happen. I call this BAD ( Botched Application Development ).
Error handling shouldn't just be a matter of throwing an exception and fail everything. Gentle recovery and best effort to continue the process must be done, especially in error prone process like development!