I have the same issue. Luckily my wallet has less than 1 BTC in it.
I encrypted a wallet in December. Going back a month later I could not remember some details of my passphrase. After ~50 guesses, I got the right phrase, but the client crashes when I enter it. Any other phrase gives "The passphrase entered for the wallet decryption was incorrect."
New wallets can be encrypted and decrypted. Trying to change the passphrase or send coins from the bad wallet causes bitcoin-qt to exit with the following output in the terminal:
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
************************
EXCEPTION: 9key_error
CKey::SetSecret() : secret must be 32 bytes
bitcoin in Runaway exception
terminate called after throwing an instance of 'key_error'
what(): CKey::SetSecret() : secret must be 32 bytes
Aborted
DB.log is empty.
debug.log is:
block 000000000a7156c0d74b
sending getdata: block 000000000c8e0d11d32d
sending getdata: block 00000000014ec472f6b8
sending getdata: block 000000000679e7163d94
...
SetBestChain: new best=0000000004f5d303bc40 height=67293 work=1569599215717594
ProcessBlock: ACCEPTED
received block 0000000000be5b4826e7
************************
EXCEPTION: 9key_error
CKey::SetSecret() : secret must be 32 bytes
bitcoin in Runaway exception
This is on ubuntu 11.10.
I tried bitcointools on a whim, but with no luck. I also tried clearing the .bitcoin folder and reinstalling bitcoin-qt from ppa:bitcoin/bitcoin
Do wallets die often? I am nervous now about encrypting my next wallet or using bitcoins for substantial amounts of money.