Ravencoin Core /Ravencoin:4.3.2.1/ (4030201), mainnet, height 4349038, fully synced.
A high-fee asset-transfer tx sits in mempool with inputs already spent in the active chain. The node doesn't evict it; CreateNewBlock keeps picking it for every template (because of the 0.14 RVN fee), every template fails TestBlockValidity, no blocks get produced. Multiple pools hit this simultaneously on 2026-05-02.
Stuck tx: a71951fae419103d59d6cbc12975820040a12412ead931512baa46e30a6b19a0
6758 bytes, 31 inputs, 31 outputs, fee 0.14318 RVN. Outputs are a mix of root assets, ownership tokens (!), sub-assets (PARENT/CHILD), and unique sub-assets with serial qualifiers (PARENT/CHILD#SN0001..#SN0011) in one tx. getmempoolentry returns it, depends: [].
debug.log loop (every ~5s):
2026-05-02 13:54:58 ERROR: ConnectBlock: Consensus::CheckTxInputs: a71951fae419103d59d6cbc12975820040a12412ead931512baa46e30a6b19a0, bad-txns-inputs-missingorspent, CheckTxInputs: inputs missing/spent (code 16)
2026-05-02 13:54:58 ERROR: TestBlockValidity: Consensus::ConnectBlock: bad-txns-inputs-missingorspent, CheckTxInputs: inputs missing/spent (code 16)
2026-05-02 13:55:03 CreateNewBlock(): block weight: 28004 txs: 1 fees: 14318000 sigops 524
2026-05-02 13:55:03 ERROR: ConnectBlock: Consensus::CheckTxInputs: a71951fae419103d59d6cbc12975820040a12412ead931512baa46e30a6b19a0, bad-txns-inputs-missingorspent, CheckTxInputs: inputs missing/spent (code 16)
2026-05-02 13:55:03 ERROR: TestBlockValidity: Consensus::ConnectBlock: bad-txns-inputs-missingorspent, CheckTxInputs: inputs missing/spent (code 16)
2026-05-02 13:55:05 PrioritiseTransaction: a71951fae419103d59d6cbc12975820040a12412ead931512baa46e30a6b19a0 feerate += -1000.00
Workaround: prioritisetransaction <txid> 0 -100000000000 — CreateNewBlock stops picking it, mining resumes. In-memory only. Clearing mempool.dat works too but peers re-relay it.
Expected: a tx whose inputs are spent per the node's UTXO set should be evicted from mempool, or at minimum skipped after the first failed TestBlockValidity in a template cycle.
Questions:
- Why doesn't the asset-transfer path re-check / evict on input-spent-elsewhere?
- Should
CreateNewBlock skip txs that just failed TestBlockValidity in the same build cycle?
- Interaction with unique sub-asset (
#SN) transfers in large multi-output txs?
Ravencoin Core
/Ravencoin:4.3.2.1/(4030201), mainnet, height 4349038, fully synced.A high-fee asset-transfer tx sits in mempool with inputs already spent in the active chain. The node doesn't evict it;
CreateNewBlockkeeps picking it for every template (because of the 0.14 RVN fee), every template failsTestBlockValidity, no blocks get produced. Multiple pools hit this simultaneously on 2026-05-02.Stuck tx:
a71951fae419103d59d6cbc12975820040a12412ead931512baa46e30a6b19a06758 bytes, 31 inputs, 31 outputs, fee 0.14318 RVN. Outputs are a mix of root assets, ownership tokens (
!), sub-assets (PARENT/CHILD), and unique sub-assets with serial qualifiers (PARENT/CHILD#SN0001..#SN0011) in one tx.getmempoolentryreturns it,depends: [].debug.log loop (every ~5s):
Workaround:
prioritisetransaction <txid> 0 -100000000000—CreateNewBlockstops picking it, mining resumes. In-memory only. Clearingmempool.datworks too but peers re-relay it.Expected: a tx whose inputs are spent per the node's UTXO set should be evicted from mempool, or at minimum skipped after the first failed
TestBlockValidityin a template cycle.Questions:
CreateNewBlockskip txs that just failedTestBlockValidityin the same build cycle?#SN) transfers in large multi-output txs?