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

  1. Configure additional appids so traffic is distributed
  2. Wait for daily quota reset (Pacific midnight) or 10-minute local reset
  3. Spread appids across separate GCP projects
  4. Reduce traffic or use x-tunnel/other front for heavy downloads
Defensive patterns

Strategy: fallback

Prevention

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


AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27). Data as JSON: /api/errors/5b928792703db56f. Report an issue: GitHub.