{"record":{"id":"30b3acef21f8cfc5","repo":"XX-net/XX-Net","slug":"socks5-create-conn-to-s-d-fail","errorCode":null,"errorMessage":"socks5 create conn to %s:%d fail","messagePattern":"socks5 create conn to (.+?):(.+?) fail","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"code/default/x_tunnel/local/proxy_handler.py","lineNumber":271,"sourceCode":"        elif addrtype == 3:  # Domain name\n            domain_len_pack = self.read_bytes(1)[0:1]\n            domain_len = ord(domain_len_pack)\n            domain = self.read_bytes(domain_len)\n            addr_pack = domain_len_pack + domain\n            addr = domain\n        elif addrtype == 4:  # IPv6\n            addr_pack = self.read_bytes(16)\n            addr = socket.inet_ntop(socket.AF_INET6, addr_pack)\n        else:\n            xlog.warn(\"request address type unknown:%d\", addrtype)\n            sock.send(b\"\\x05\\x07\\x00\\x01\")  # Command not supported\n            return\n\n        port = struct.unpack('>H', self.rfile.read(2))[0]\n\n        conn_id = proxy_session.create_conn(sock, addr, port)\n        if not conn_id:\n            xlog.warn(\"socks5 create conn to %s:%d fail\", addr, port)\n            reply = b\"\\x05\\x01\\x00\" + addrtype_pack + addr_pack + struct.pack(\">H\", port)\n            sock.send(reply)\n            return\n\n        xlog.info(\"socks5 %r connect to %s:%d conn:%d\", self.client_address, addr, port, conn_id)\n        reply = b\"\\x05\\x00\\x00\" + addrtype_pack + addr_pack + struct.pack(\">H\", port)\n        try:\n            sock.send(reply)\n        except Exception as e:\n            if conn_id in g.session.conn_list:\n                g.session.conn_list[conn_id].do_stop(\"close_on_Socks5_reply\")\n            xlog.warn(\"socks5 %r connect to %s:%d conn_id:%d closed:%r\", self.client_address, addr, port, conn_id, e)\n            return\n\n        if len(self.read_buffer) - self.buffer_start:\n            g.session.conn_list[conn_id].transfer_received_data(self.read_buffer[self.buffer_start:])\n\n        g.session.conn_list[conn_id].start(block=True)","sourceCodeStart":253,"sourceCodeEnd":289,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/x_tunnel/local/proxy_handler.py#L253-L289","documentation":"SOCKS5 CONNECT succeeded syntactically but proxy_session.create_conn returned no conn_id, so the tunnel to %s:%d could not be created and a generic failure reply (0x01) is sent.","triggerScenarios":"SOCKS5 CONNECT while the x-tunnel session is down/not logged in, out of quota, or front connectivity fails so create_conn cannot be issued.","commonSituations":"Session expired, missing login credentials, quota exhausted, all fronts dead.","solutions":["Confirm x-tunnel login and active session","Check balance (request_balance) and front availability","Restart the x-tunnel client if the session is stuck"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if not proxy_session.create_conn(sock, addr, port):\n    report_session_unavailable()","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep session logged in and quota available","Restart client on repeated failures"],"tags":["x-tunnel","socks5","tunnel"],"backgroundTag":"proxy-upstream-connect-failed","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}