XX-net/XX-Net · warning
front retry %s%s
Error message
front retry %s%s
What it means
The selected front returned an unexpected HTTP status (anything other than 200/521/400/404, e.g. 403, 5xx, 602), so front_dispatcher sleeps 1s and retries with another front. Repeated occurrences mean fronts are systematically failing.
Source
Thrown at code/default/x_tunnel/local/front_dispatcher.py:190
if get_front_time > 0.1:
xlog.warn("get_front_time: %f for %s %s %s", get_front_time, method, host, path)
if host == "dns.xx-net.org" and front == cloudflare_front and g.server_host:
# share the x-tunnel connection with dns.xx-net.org
# x-tunnel server will forward the request to dns.xx-net.org
if g.server_host:
host = g.server_host
headers["X-Async"] = "1"
if len(data) < 84:
padding = utils.to_str(utils.generate_random_lowercase(random.randint(8, 64)))
headers["Padding"] = padding
content, status, response = front.request(
method, host=host, path=path, headers=dict(headers), data=data, timeout=timeout)
if status not in [200, 521, 400, 404]:
xlog.warn("front retry %s%s", host, path)
time.sleep(1)
continue
header_len = int(response.headers.get(b"Content-Length", 0))
if header_len and len(content) != header_len:
xlog.warn("response length incorrect, head len:%s, content len:%d retry it", header_len, len(content))
time.sleep(1)
continue
return content, status, response
return content, status, response
def set_session_host(host):
global session_fronts
for front in session_fronts:
dispatcher = front.get_dispatcher(host)View on GitHub (pinned to cfa5bc17b6)
Solutions
- Inspect the accompanying per-front warnings (error 220) to see the status/trace
- Update/rotate front domains via the front updater
- Verify server-side health and account quota if all fronts return 5xx
Defensive patterns
Strategy: retry
Prevention
- Rotate front domains regularly
- Watch for 403 waves indicating blocks
When it happens
Trigger: front.request returns 403 (front blocked), 500/502 (worker backend error), 602 (front-level failure) — dispatcher then loops.
Common situations: CloudFront/GAE IP fronts blocked by firewall, worker quota exhausted, or upstream xx-net server erroring.
Related errors
- login session fail, status:%r
- %s %s%s status:%d trace:%s
- get_front fail
- get_front_time: %f for %s %s %s
- response length incorrect, head len:%s, content len:%d retry
AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27).
Data as JSON: /api/errors/928ecabfe15201a5.
Report an issue: GitHub.