It seems that the 'unexpected error' was caused because apparently the transmission fee is no longer a fixed 0.0005 but is instead calculated, and I didn't have enough in my wallet for the amount I wanted to send + the calculated TX fee. The send worked after I tried smaller values, but the TX fee was 0.01 (although, if the TX fee causes a faster transaction I guess I can't complain... would like to be able to customize it though.
BitcoinSpinner dynamically calculates the fee necessary to guarantee that your transaction gets propagated through the network. The formula is based on the size of your transaction, and basically is 0.0005 * min (1, transaction size in bytes / 1000). If your wallet consists of many small input transactions the transactions you send will be big. So, instead of paying 0.0005 you will pay 0.001 or maybe even more.
So, why do I enforce this instead of letting the end-user decide whatever fee he wishes to pay?
The answer is simple: The end user needs a nice user experience. If I let the end user send with whatever fee he would like then some users would say "Hey, I don't want to pay any stinking fee, I'll send with a zero fee!". The end result would be users with transactions that never reach a miner, as the intermediate nodes would discard them. The end result would be "Hey, BitcoinSpinner is crap, it doesn't work".
So, why are there fees at all? Fees are there for two purposes:
1. They prevent someone from flooding the network with minuscule transactions. AKA DOS attack.
2. They provide miners a reason for mining once the mining reward diminishes.
The fee calculated by BitcoinSpinner only guarantees that your transaction gets propagated through the Bitcoin network (provided that it consists of nodes of the Satoshi client type) it does not however guarantee that your transaction ever gets into a block, but so far this has not been a problem.
Going forward mining fee calculation may get even more complex, as miners will start looking more closely at the fees, and only select the ones with the highest fees. Currently there is a upper limit on how big a block can be, so once the number of transactions get so high that the block size limit kicks in, then miners will only pick the transactions with highest fee pr byte.
Enough of that. Let's get back to what you experienced. You got an "unexpected error" while sending the last cents from your wallet, and as the fee (0.001) was higher than you expected there were not enough funds to send the transaction. That could clearly be handled better by BitcoinSpinner, and I'll look into that.
Thanks for the error report, and I am glad that you found a workaround.