Recently I sent several transactions in a short period of time but my available balance was always more than enough for each transaction, so I did not think that chained payments should have been a problem. Because I use the set always-confirm-transfers 1
command I am able to see the fee information before each transaction.
I thought I remembered a message telling me I was about to send xxxx Monero with a fee of xxxx Monero of which xxxx Monero contains unconfirmed outputs. However because of the log level I was using, I cannot confirm (from my log file) this message as fact. If my memory is wrong, the correct message was likely:
The transaction fee is 0.02xxxxxxxxxx, of which 0.00xxxxxxxxxx is dust from change. Is this okay? (Y/Yes/N/No)
My available balance was far greater than the amount I was sending and the message seemed to be talking about the tiny quantity of unconfirmed outputs being used in the transaction fee itself. Out of curiosity, I selected Y
to confirm the transaction and received the following error message:
Error: transaction < xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > was rejected by daemon with status: Failed
Error: Reason: fee too low
My logs provide additional details:
date,time ERROR /DISTRIBUTION-BUILD/src/wallet/wallet2.cpp:2506 daemon_send_resp.status != CORE_RPC_STATUS_OK. THROW EXCEPTION: error::tx_rejected
date,time /DISTRIBUTION-BUILD/src/wallet/wallet2.cpp:2506:N5tools5error11tx_rejectedE: transaction was rejected by daemon, status = Failed, tx:
key offets, key images, etc xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
signatures xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Error: transaction < xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > was rejected by daemon with status: Failed
Error: Reason: fee too low
I tried sending the same transaction less than 10 seconds later (no block confirmations in between) and it went through with no error. It appears as if the second time random outputs were chosen again for transaction fees and based on the always-confirm-transfers
option, this time no unconfirmed outputs were being used for the tx fee.
I am certain that I had plenty of available outputs for each transaction I sent.
Are outputs used for transaction fees selected at random (including from unconfirmed outputs) so occasionally a transaction can be rejected for the reason above even when there are plenty of available Monero outputs for the transaction itself?