2

I have a chain of 25 unconfirmed transactions. There's a default mempool limit of 25 chained unconfirmed transactions, so my change output of the 25th transaction is not usable until some of the transactions have confirmed.

To make it confirm, I thought I'd bumpfee the last (25th) tx.

$ bitcoin-cli bumpfee <txid> '{"fee_rate": 410}'
error code: -4
error message:
Unable to create transaction. Transaction has too long of a mempool chain

Why do I get this error? I'm not making the chain longer, I'm just trying to replace the last tx.

1 Answer 1

3

In the mempool validation logic, the maximum chain size checks are performed without first removing the transaction to be replaced. That is, if there is a chain of 25 unconfirmed transactions such as:

txA <-- txB <-- txC <-- ... <-- txY

And a candidate for replacing txY (txY') is submitted, the mempool limits will be checked with the following topology:

txA <-- txB <-- txC <-- ... <-- txY
                            \-- txY'

txA will therefore fail the descendants count limit check (since it's now 26, accounting for itself) [0].

The wallet logic when creating a transaction (not only for fee bumps) mimics this logic (1, 2). This is why the bumpfee command for the 25th transaction in an unconfirmed chain fails.


[0]: This ignores the RBF carveout for simplicity.

3
  • Ok, thanks. What's the rationale for this behavior? What's the risk of allowing the replacement? Commented Nov 13, 2023 at 10:28
  • I wasn't around when it was introduced, but thinking through how one would make this change seems like a lot of hassle for little gain. It could however be documented as it's an interface for external softwares. Commented Nov 13, 2023 at 10:35
  • The gain would be that I can get my 25 stuck transactions unstuck. A workaround for this issue is to avoid creating the 25th tx in the first place, to save it fee-bumps so to speak. Commented Nov 13, 2023 at 13:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.