Thanks for sharing!
Bitcoin Core “rounds” the feerate filters a bit (i.e. it put them into bins) as sending an exact feefilter based on mempool contents is a way of fingerprinting nodes across networks. See FeeFilterRounder in src/policy/fees.h. The FeeFilterRounder defines a MAX_FILTER_FEERATE of 1e7 (10,000,000). 1e7 happens to “round” to 9170997. This can also be seen in this test where MAX_MONEY (21,000,000 * COIN) is “rounded” to 9170997.
When in IBD, a feefilter of MAX_MONEY is set:
so they should return a feefilter of 9170997. Maybe the nodes were in IBD when you connected to them?
Looking at some logs I can see the following pattern happening repeatedly:
We connect to peer=5129 at height 908087, the peer is at height 907929 (158 blocks behind). Initially, the peer sends a feefilter of 9170997. After four seconds, the peer lowers its feefilter of 9170997 to 1000.
2025-09-01T09:29:34.83Z [net] send version message: version 70016, blocks=908087, txrelay=1, peer=5129
2025-09-01T09:29:34.83Z [net] receive version message: version 70016, blocks=907929, txrelay=1, peer=5129
..
2025-09-01T09:29:35.99Z [net] received: feefilter of 0.09170997 BTC/kvB from peer=5129
2025-09-01T09:29:39.08Z [net] received: feefilter of 0.00001000 BTC/kvB from peer=5129
The code for is: