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
- Reconnect / call ensureAppServer to re-establish the session
- Check the relay's app-server child process is running
- 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.