Your GIO-based client goes direct to 192.168.40.12, but uses the proxy for reports.example. DNS says the name resolves to that address. The bypass resolver need not perform that lookup before choosing a route.

GSimpleProxyResolver documents separate matching rules: hostname exclusions apply to destinations identified by name; IP exclusions apply to destinations identified by address.

With only 192.168.40.12 in ignore-hosts, the numeric destination can bypass while the hostname does not. Expanding the address into a subnet entry does not automatically convert it into a list of names resolving inside that subnet.

If both spellings should be direct, express both intentions with forms supported by the actual consumer. If the exceptions come from GNOME settings, store them as separate list entries. Keep the name exception as narrow as the requirement allows; a convenient broad domain rule can exempt unrelated services.

This is a GIO resolver contract, not a universal rule for every application on a GNOME desktop. Another browser or HTTP library can use a different resolver, PAC script, or explicit proxy configuration.

Compare the URL spelling, selected resolver, and active proxy mode before diagnosing a broken subnet parser. A successful direct connection by address is useful evidence about that address-based request. It says nothing by itself about how the named request was classified.

Artiglyn mynjee