I'm using "sendfrom" and I'm not changing "minconf". If the default is 1, then why did my bitcoind send transactions based on unconfirmed incoming TX? Ah, maybe because 1 confirmation is not enough to not get messed with and I should set it to minconf=3 ?
It is quite rare for a transaction with 1 confirmation to become victim to transaction malleability.
You would need the competing transaction to end up in a competing block which eventually orphans the block where you see the 1 conf.
Perhaps there is a bug in bitcoind and minconf is not defaulting to 1? Perhaps some testing is needed on this matter, to confirm what you're saying.
I looked into the source, it does default to 1, it's quite clear:-
https://github.com/bitcoin/bitcoin/blob/f60e49d49c72908356d70d05ae30c6e63be2192d/src/rpcwallet.cpp#L765-L767Simple as:
value = 1;
if(customValue) value = customValue;
Anyway, sendfrom only verifies that you have enough funds in your wallet that's confirmed at one, it doesn't actually process them there (And uses the normal priority processing).
I'm unsure why it failed, can I ask, have you messed around with the account features? I notice it's uses accounts, and, accounts are the most accurate things (I can have an account with infinite BTC, if I want).