XX-net/XX-Net · info
%d but server type:%s
Error message
%d but server type:%s
What it means
IP checker received HTTP 503/500 (normally 'out of quota' codes) but the Server header is not a Google frontend (no 'gws', 'Google Frontend', or 'GFE'). A 503 from a non-Google server means the IP is not a usable GFE; check fails.
Source
Thrown at code/default/gae_proxy/local/check_ip.py:60
from gae_proxy.local.config import config
from gae_proxy.local.host_manager import HostManager
class CheckIp(front_base.check_ip.CheckIp):
def check_response(self, response):
server_type = response.headers.get(b'Server', b"")
if isinstance(server_type, list):
server_type = server_type[0]
self.logger.debug("status:%d", response.status)
self.logger.debug("Server type:%s", server_type)
if response.status not in self.config.check_ip_accept_status:
return False
if response.status in [503, 500]:
# out of quota
if b"gws" not in server_type and b"Google Frontend" not in server_type and b"GFE" not in server_type:
xlog.warn("%d but server type:%s", response.status, server_type)
return False
else:
return True
try:
content = response.read()
except Exception as e:
if sys.version_info[0] == 3 and (
isinstance(e, ConnectionError) or
isinstance(e, ConnectionResetError) or
isinstance(e, BrokenPipeError)
):
return False
self.logger.warn("app check except:%r", e)
return False
if self.config.check_ip_content not in content:View on GitHub (pinned to cfa5bc17b6)
Solutions
- This is normal during scanning — bad IPs are discarded automatically
- Keep scanning to replenish good IPs; check the IP count on the status page
- Update XX-Net's check_ip rules if Google changed Server headers
- If most IPs fail, your network may be heavily poisoned — try another network/ISP
Defensive patterns
Strategy: fallback
Prevention
- Let the scanner self-filter bad IPs; monitor good-ip count
- Update XX-Net when Google changes Server headers
- Test from a clean network to distinguish poisoning from real failures
When it happens
Trigger: check_ip testing an IP that answers 503/500 with a non-GFE Server header — e.g. a random server, a poisoned/blocked IP, or a middlebox responding on port 443.
Common situations: GFW poisoning returning fake 503 responses, IP range scans hitting non-Google hosts, or CDN servers occupying the scanned range.
Related errors
AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27).
Data as JSON: /api/errors/8eb9da64d17f2049.
Report an issue: GitHub.