BigPizzaV3/CodexPlusPlus · error · Error

新建会话失败:app-server 未返回 thread id

Error message

新建会话失败:app-server 未返回 thread id

What it means

Raised in mobile_relay_page when a new chat session is created but the app-server response contains no thread id, so the client cannot track the new session. Indicates an unexpected or protocol-mismatched app-server reply.

Source

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

  return await rpc("turn/start", { threadId, clientUserMessageId: `codex-plus-mobile-${Date.now()}`, input: [{ type: "text", text }] });
}
$("connect").onclick = connect;
$("filter").oninput = (event) => { state.filter = event.target.value; renderSessions(); };
$("back").onclick = () => { detailPane.classList.add("hidden"); sessionsPane.classList.remove("hidden"); };
$("composer").onsubmit = async (event) => {
  event.preventDefault();
  const input = $("messageInput");
  const text = input.value.trim();
  if (!text) return;
  input.value = "";
  let threadId = state.selectedId;
  let isNew = false;
  try {
    if (!threadId) {
      const result = await rpc("thread/start", state.selectedCwd ? { cwd: state.selectedCwd } : {});
      const thread = result?.thread || result?.data || result;
      threadId = thread?.id || result?.threadId || result?.id;
      if (!threadId) throw new Error("新建会话失败:app-server 未返回 thread id");
      state.selectedId = threadId;
      isNew = true;
    }
    rememberPendingMessage(threadId, text);
    appendMessageNode("用户", text, true);
    setStatus("正在思考...");
    pollThread(threadId);
    sendMessage(threadId, text, isNew)
      .then(() => setStatus("已发送,正在同步回复..."))
      .catch((error) => {
        forgetPendingMessage(threadId, text);
        setStatus(error.message, true);
      });
  } catch (error) {
    forgetPendingMessage(threadId, text);
    setStatus(error.message, true);
  }
};

View on GitHub (pinned to f2074595a2)

Solutions

  1. Retry creating the session
  2. Update codex/relay so client and app-server protocols match
  3. Inspect the app-server response for the missing id field
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at apps/codex-plus-mobile-relay/src/main.rs:1257 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/2c88026bcfa76912. Report an issue: GitHub.