pingdotgg / pingdotgg/t3code

Codex thread/resume fails with list_turns is not supported yet when continuing a desktop thread on Android

Open
#12,462 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

accepted bug upstream via-triage
Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

What happened:
Working on a Codex thread in T3 Code desktop (Windows), then continuing that same thread in the T3 Android app fails on every turn with "Provider turn start failed". The thread becomes unusable on mobile.

Diagnosis:
T3 resumes the provider thread via thread/resume (openCodexThread, apps/server/src/provider/Layers/CodexSessionRuntime.ts). The Codex app-server rejects it with CodexAppServerRequestError: list_turns is not supported yet (code -32601), which surfaces as ProviderAdapterProcessError (codex) from startSession via ensureSessionForThread / processTurnStartRequested. isRecoverableThreadResumeError only matches missing-thread snippets, so unlike a missing thread this capability/version mismatch never falls back to thread/start and the turn fails fatally. Upstream openai/codex#37754 documents the same thread/resume -> list_turns not supported failure under app-server version skew. Cross-device resume (desktop CODEX_HOME thread plus possibly different Codex version on Android) is the likely trigger here.

Steps to reproduce:

  1. On T3 Code desktop (Windows), work in a Codex-backed thread until it has turns.
  2. Open the same thread in the T3 Android app.
  3. Send a message.
  4. Every turn fails with Provider turn start failed / list_turns is not supported yet.

Version: 0.0.42 (desktop T3 Code Alpha on Windows; Android app 1.2.0)

Environment: Windows plus T3 Code (Alpha) 0.0.42 desktop; T3 Android app 1.2.0; codex-cli 0.154.0 on desktop; provider codex.

Evidence:

Provider turn start failed
ProviderAdapterProcessError: Provider adapter process error (codex) for thread <thread-id>: list_turns is not supported yet
    at startSession (bin.mjs)
    at ensureSessionForThread (bin.mjs)
    at processTurnStartRequested (bin.mjs)
[cause]: CodexAppServerRequestError: list_turns is not supported yet
[cause]: Error: list_turns is not supported yet

(Home-directory paths redacted. gh issue list --search list_turns in pingdotgg/t3code returns nothing.)

Related issues:

  • openai/codex#37754 (resume fails: list_turns is not supported yet, thread/resume calling unsupported list_turns; version-skew daemon hypothesis). Not a T3 duplicate: no pingdotgg/t3code issue mentions list_turns. Possibly related T3-side: #2584 (Codex provider turn start fails, different payload cause, same startSession path).

Fix applied or workaround:
None applied. Suggested: treat code -32601 / "not supported yet" / "list_turns" on thread/resume as recoverable (extend isRecoverableThreadResumeError or handle method-not-found separately) and fall back to thread/start with a user-visible notice that the provider session restarted from persisted T3 history, mirroring the missing-thread path. A version/capability check at connect would also help.

Filed by: opencode/muse-spark-1.3-contributor-free via T3 triage playbook.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/server/src/provider/Layers/CodexSessionRuntime.ts, following openCodexThread through ensureSessionForThread and processTurnStartRequested, then inspect isRecoverableThreadResumeError and the existing missing-thread fallback. Reproduce the cross-device resume failure or trace the reported -32601/list_turns path; done means this resume case falls back to thread/start and shows the provider-session restart notice without failing the turn.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, typescript
Domain
backend, mobile-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.