Hmm, on a macOS-cross build, I still get:
test 2026-08-01T16:41:53.495475Z TestFramework.node0 (DEBUG): RPC successfully started
node0 2026-08-01T16:41:53.495915Z [http] [httpserver.cpp:834] [NewSockAccepted] [http] HTTP Connection accepted from 192.168.64.6:50331 (id=1)
node0 2026-08-01T16:41:53.495932Z [http] [httpserver.cpp:1025] [MaybeDispatchRequestsFromClient] [http] Received a POST request for / from 192.168.64.6:50331 (id=1)
node0 2026-08-01T16:41:53.495939Z [http] [httpserver.cpp:133] [MaybeDispatchRequestToWorker] [http] HTTP request from 192.168.64.6:50331 rejected: Client network is not allowed RPC access
node0 2026-08-01T16:41:53.495948Z [http] [httpserver.cpp:616] [WriteReply] [http] HTTPResponse (status code: 403 size: 127) added to send buffer for client 192.168.64.6:50331 (id=1)
node0 2026-08-01T16:41:53.495964Z [http] [httpserver.cpp:1185] [MaybeSendBytesFromBuffer] [http] Sent 127 bytes to client 192.168.64.6:50331 (id=1)
test 2026-08-01T16:41:53.496091Z TestFramework (ERROR): Unexpected exception:
Traceback (most recent call last):
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/test_framework/test_framework.py", line 145, in main
self.run_test()
~~~~~~~~~~~~~^^
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/rpc_bind.py", line 134, in run_test
self._run_nonloopback_tests()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/rpc_bind.py", line 176, in _run_nonloopback_tests
assert not self.run_allowip_test(['1.1.1.1'], self.non_loopback_ip, self.defaultport)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/rpc_bind.py", line 77, in run_allowip_test
node.getnetworkinfo()
~~~~~~~~~~~~~~~~~~~^^
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/test_framework/coverage.py", line 50, in __call__
return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/test_framework/authproxy.py", line 128, in __call__
response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/test_framework/authproxy.py", line 102, in _request
return self._get_response()
~~~~~~~~~~~~~~~~~~^^
File "/Users/runner/work/bitcoin-core-nightly/bitcoin-core-nightly/test/functional/test_framework/authproxy.py", line 188, in _get_response
raise JSONRPCException(
{'code': -342, 'message': f"non-JSON HTTP response with \'{http_response.status} {http_response.reason}\' from server: {http_response.read().decode()}"},
http_response.status)
test_framework.util.JSONRPCException: non-JSON HTTP response with '403 Forbidden' from server: (-342) [http_status=403]