XX-net/XX-Net · warning
report_out_of_quota:%s
Error message
report_out_of_quota:%s
What it means
An appid was reported as out of quota by the GAE fetch path: it's logged, added to out_of_quota_appids, and removed from working_appid_list so it won't be selected until reset.
Source
Thrown at code/default/gae_proxy/local/appid_manager.py:67
time.sleep(1)
return None
else:
self.logger.warn("reset appid")
self.reset_appid()
appid = random.choice(self.working_appid_list)
return str(appid)
else:
for _ in range(0, 10):
appid = self.public_appid.get()
if appid in self.out_of_quota_appids or appid in self.not_exist_appids:
continue
else:
return appid
return None
def report_out_of_quota(self, appid):
self.logger.warn("report_out_of_quota:%s", appid)
with self.lock:
if appid not in self.out_of_quota_appids:
self.out_of_quota_appids.append(appid)
try:
self.working_appid_list.remove(appid)
except:
pass
def report_not_exist(self, appid, ip):
self.logger.debug("report_not_exist:%s %s", appid, ip)
th = threading.Thread(target=self.process_appid_not_exist, args=(appid, ip), name="process_appid_not_exist")
th.start()
def process_appid_not_exist(self, appid, ip):
ret = self.check_api(ip, "xxnet-1")
if ret and ret.ok:
self.set_appid_not_exist(appid)
else:View on GitHub (pinned to cfa5bc17b6)
Solutions
- Configure additional appids so traffic is distributed
- Wait for daily quota reset (Pacific midnight) or 10-minute local reset
- Spread appids across separate GCP projects
- Reduce traffic or use x-tunnel/other front for heavy downloads
Defensive patterns
Strategy: fallback
Prevention
- Distribute traffic across many appids
- Track out_of_quota_appids and alert when it equals the configured set
- Wait out the quota reset instead of retrying immediately
When it happens
Trigger: request_gae_server / request_gae_proxy receiving a quota-exceeded response (typically HTTP 503 from GAE) for a given appid.
Common situations: Daily GAE free quota exhausted on that appid; shared/overused appid; one appid absorbing all traffic because of misconfigured rotation.
Related errors
- all appid out of quota, wait %d seconds to reset
- no appid
- process_appid_not_exist, remove ip:%s
- APPID_manager, set_appid_not_exist %s
- time out
AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27).
Data as JSON: /api/errors/5b928792703db56f.
Report an issue: GitHub.