BigPizzaV3/CodexPlusPlus · error · Error

未连接

Error message

未连接

What it means

Client error in mobile_relay_page ('not connected'): an RPC was attempted while the relay has no live app-server session/connection, so the request cannot be routed. Fired when the app-server link dropped or was never established before the call.

Source

Thrown at apps/codex-plus-mobile-relay/src/main.rs:858

        return;
      }
      if (response.type === "appServerClosed") {
        appServerConnected = false;
        for (const item of pendingRpc.values()) item.reject(new Error(response.error || "app-server 连接已关闭"));
        pendingRpc.clear();
        setStatus(response.error || "app-server 连接已关闭", !!response.error);
        return;
      }
      const id = String(response.id ?? "");
      const resolver = pending.get(id);
      if (resolver) { pending.delete(id); resolver.resolve(response); return; }
    } catch (error) {
      setStatus(`解密/解析失败:${error.message}`, true);
    }
  };
}
async function request(path, body = "", timeoutMs = 30000) {
  if (!socket || socket.readyState !== WebSocket.OPEN) throw new Error("未连接");
  const id = `${Date.now()}-${requestId++}`;
  const packet = await encrypt({ type: "httpRequest", id, method: body ? "POST" : "GET", path, headers: {}, body });
  socket.send(JSON.stringify(packet));
  return await new Promise((resolve, reject) => {
    pending.set(id, { resolve, reject });
    setTimeout(() => { if (pending.delete(id)) reject(new Error("请求超时")); }, timeoutMs);
  });
}
async function ensureAppServer() {
  if (appServerConnected && appServerSessionId) return;
  appServerSessionId = appServerSessionId || `mobile-${Date.now()}-${Math.random().toString(16).slice(2)}`;
  const id = `${Date.now()}-${requestId++}`;
  const packet = await encrypt({ type: "appServerConnect", id, sessionId: appServerSessionId });
  socket.send(JSON.stringify(packet));
  await new Promise((resolve, reject) => {
    pending.set(id, { resolve, reject });
    setTimeout(() => { if (pending.delete(id)) reject(new Error("app-server 连接超时")); }, 30000);
  });

View on GitHub (pinned to f2074595a2)

Solutions

  1. Reconnect / call ensureAppServer to re-establish the session
  2. Check the relay's app-server child process is running
  3. Retry after the WebSocket reconnects
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at apps/codex-plus-mobile-relay/src/main.rs:858 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23). Data as JSON: /api/errors/c231f21c451d7f24. Report an issue: GitHub.