feature_anchors.py builds the expected anchors.dat substring from each peer's port with hex(port)[2:], which is not zero-padded. The port is serialized as two bytes, so for ports below 4096 the expected string is one hex digit short and assert ip_port in anchors_hex fails.
This only shows up with a non-default port range, for example when avoiding local listeners:
TEST_RUNNER_PORT_MIN=1100 test/functional/feature_anchors.py
fails on master with AssertionError at the assert ip_port in anchors_hex line and passes with this change; the default range still passes.
Disclosure: AI (Claude Fable 5.1) was used to find this issue and to draft this PR.