You created a transaction that signaled finality. Your wallet will therefore not allow replacing it per the opt-in RBF rules specified in BIP125.
You have multiple options:
- Use child-pays-for-parent
If your stuck transaction has a change output, you can spend the change output with a high-feerate transaction. Miners will then include the stuck parent transaction in order to collect the fee of the child. - Abandon the stuck transaction
- Shut down Bitcoin Core
- Delete the
mempool.datto remove knowledge of the stuck transaction from the mempool becauseabandontransactiononly works when the tx is not in the mempool - Start Bitcoin Core with
walletbroadcast=0, so your wallet doesn’t put it immediately back into the mempool - Call
abandontransaction "txid" - Create a new transaction to replace the stuck transaction with a higher feerate that uses at least one of the inputs of the previous transactions to create a conflict
- Restart Bitcoin Core without the
walletbroadcast=0to return to the default behavior regarding submitting of transactions
You may want to consider upgrading to v24, since that version started marking all transactions built from the commandline as replaceable by default. Alternatively, you can use the replaceable parameter on the sendtoaddress RPC to explicitly mark future transactions as replaceable.