diff --git a/config_builder.go b/config_builder.go index 7729b51a5..6f9cb1f3e 100644 --- a/config_builder.go +++ b/config_builder.go @@ -1807,8 +1807,11 @@ func broadcastErrorMapper(err error) error { // in the first place are rebroadcasted despite of their backend error. // Mempool conditions change over time so it makes sense to retry // publishing the transaction. Moreover we log the detailed error so the - // user can intervene and increase the size of his mempool. - case errors.Is(err, chain.ErrMempoolMinFeeNotMet): + // user can intervene and increase the size of his mempool or increase + // his min relay fee configuration. + case errors.Is(err, chain.ErrMempoolMinFeeNotMet), + errors.Is(err, chain.ErrMinRelayFeeNotMet): + ltndLog.Warnf("Error while broadcasting transaction: %v", err) returnErr = &pushtx.BroadcastError{ diff --git a/lnwallet/btcwallet/btcwallet.go b/lnwallet/btcwallet/btcwallet.go index 7762dc514..a29139dba 100644 --- a/lnwallet/btcwallet/btcwallet.go +++ b/lnwallet/btcwallet/btcwallet.go @@ -1133,7 +1133,9 @@ func mapRpcclientError(err error) error { // If the wallet reports that fee requirements for accepting the tx // into mempool are not met, convert it to our internal ErrMempoolFee // and return. - case errors.Is(err, chain.ErrMempoolMinFeeNotMet): + case errors.Is(err, chain.ErrMempoolMinFeeNotMet), + errors.Is(err, chain.ErrMinRelayFeeNotMet): + return fmt.Errorf("%w: %v", lnwallet.ErrMempoolFee, err.Error()) } diff --git a/sweep/fee_bumper.go b/sweep/fee_bumper.go index a23213f32..e0d5d7516 100644 --- a/sweep/fee_bumper.go +++ b/sweep/fee_bumper.go @@ -565,7 +565,10 @@ func (t *TxPublisher) createRBFCompliantTx( // If the error indicates the fees paid is not enough, we will // ask the fee function to increase the fee rate and retry. - case errors.Is(err, lnwallet.ErrMempoolFee): + case errors.Is(err, lnwallet.ErrMempoolFee), + errors.Is(err, chain.ErrMinRelayFeeNotMet), + errors.Is(err, chain.ErrMempoolMinFeeNotMet): + // We should at least start with a feerate above the // mempool min feerate, so if we get this error, it // means something is wrong earlier in the pipeline. @@ -574,7 +577,8 @@ func (t *TxPublisher) createRBFCompliantTx( fallthrough - // We are not paying enough fees so we increase it. + // We are not paying enough fees to RBF a previous tx, so we + // increase it. case errors.Is(err, chain.ErrInsufficientFee): increased := false