In an unmerged branch of #32636 (https://github.com/bitcoin/bitcoin/commit/097e00f90765915b0f8353a4eb5ebb18ceae2a66) I unintentionally broke default -fallbackfee behavior, but this was not caught by any tests. See #32636 (review).
Something like the following diff does not cause any test failures on master despite causing a behavior change:
0diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
1index bc27018cd2..079610fba0 100644
2--- a/src/wallet/wallet.cpp
3+++ b/src/wallet/wallet.cpp
4@@ -3048,24 +3048,24 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
5 if (const auto arg{args.GetArg("-fallbackfee")}) {
6 std::optional<CAmount> fallback_fee = ParseMoney(*arg);
7 if (!fallback_fee) {
8 error = strprintf(_("Invalid amount for %s=<amount>: '%s'"), "-fallbackfee", *arg);
9 return nullptr;
10 } else if (fallback_fee.value() > HIGH_TX_FEE_PER_KB) {
11 warnings.push_back(AmountHighWarn("-fallbackfee") + Untranslated(" ") +
12 _("This is the transaction fee you may pay when fee estimates are not available."));
13 }
14 walletInstance->m_fallback_fee = CFeeRate{fallback_fee.value()};
15+ // Disable fallback fee in case value was set to 0, enable if non-null value
16+ walletInstance->m_allow_fallback_fee = walletInstance->m_fallback_fee.GetFeePerK() != 0;
17 }
18
19- // Disable fallback fee in case value was set to 0, enable if non-null value
20- walletInstance->m_allow_fallback_fee = walletInstance->m_fallback_fee.GetFeePerK() != 0;
This PR adds a functional test check that when no -fallbackfee argument is set and fee estimation is not possible, that sending fails because -fallbackfee is disabled by default.