{"record":{"id":"506c08519b42b3e2","repo":"XX-net/XX-Net","slug":"test-appid-s-status-d","errorCode":null,"errorMessage":"test appid %s status:%d","messagePattern":"test appid (.+?) status:(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/gae_proxy/local/web_control.py","lineNumber":64,"sourceCode":"    return \"deja.com\"\n\n\ndef test_appid_exist(ssl_sock, appid):\n    request_data = 'GET /_gh/ HTTP/1.1\\r\\nHost: %s.appspot.com\\r\\n\\r\\n' % appid\n    ssl_sock.send(request_data.encode())\n    response = simple_http_client.Response(ssl_sock)\n\n    response.begin()\n    if response.status == 404:\n        # xlog.warn(\"app check %s status:%d\", appid, response.status)\n        return False\n\n    if response.status == 503:\n        # out of quota\n        return True\n\n    if response.status != 200:\n        xlog.warn(\"test appid %s status:%d\", appid, response.status)\n\n    content = response.read()\n    if b\"GoAgent\" not in content:\n        # xlog.warn(\"app check %s content:%s\", appid, content)\n        return False\n\n    return True\n\n\ndef test_appid(appid):\n    for i in range(0, 3):\n        ssl_sock = direct_front.connect_manager.get_ssl_connection()\n        if not ssl_sock:\n            continue\n\n        try:\n            return test_appid_exist(ssl_sock, appid)\n        except Exception as e:","sourceCodeStart":46,"sourceCodeEnd":82,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/gae_proxy/local/web_control.py#L46-L82","documentation":"test_appid_exist probed a GAE appid and got an HTTP status other than 200 (and not the quota-related 503), so the appid likely isn't deployed or is misconfigured. The warning logs the failing status before content is checked for the GoAgent marker.","triggerScenarios":"Calling test_appid for an appid that was never deployed, was deleted, or the appid string is misspelled; the GAE app returns 404/500.","commonSituations":"First-run setup where the user hasn't uploaded the GoAgent GAE app yet; appid renamed in config but not on GAE; Google App Engine quota or auth changes.","solutions":["Deploy the GoAgent app to the appid (use the deploy command in web UI)","Verify the appid string in config matches the GAE application ID exactly","Check appstatus via the GAE console to confirm the app exists and serves 200"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# before enabling an appid, confirm the GAE app is deployed\nimport urllib2\nr = urllib2.urlopen('https://%s.appspot.com/_gh/' % appid)\nassert r.getcode() == 200","typeGuard":null,"tryCatchPattern":"try:\n    ok = test_appid(appid)\nexcept Exception:\n    ok = False","preventionTips":["Deploy the GoAgent GAE app before listing the appid in config","Verify appid spelling against the GAE console"],"tags":["gae","appid","deploy","http-status"],"backgroundTag":"app-not-deployed","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}