Is there any rejection rule that
testmempoolaccept will not check, or is it safe to assume that if it passes
testmempoolaccept validation it will be at least broadcast?
Mostly concerned about complex reasons, such as
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.Sign up to join this community
No it's not, or at least not at any point in time.
There are both invariant and time-dependent rules for the mempool to accept a specific transaction.
testmempoolaccept command will check your transaction against the former (policy and consensus rules), but there is nothing you could realistically do to check the latter.
As an example of a time-dependent rule, you could have a software checking pre-signed transactions paying 253sat/kW of feerate against
Valid transactions would pass the check, nonetheless they would not broadcast if the mempool minimum feerate is > 253sat/kW at the time of broadcast.