Codex Desktop 0.144.0-alpha.4: agent-created project session stalls on first turn after emitting only reasoning

Open 💬 3 comments Opened Jul 13, 2026 by absolutbly

What version of the Codex App are you using?

Codex Desktop / local CLI metadata from the affected rollout:

  • cli_version: 0.144.0-alpha.4
  • originator: Codex Desktop
  • source: vscode
  • thread_source: subagent
  • model_provider: openai
  • model in turn context: gpt-5.6-sol
  • platform: Windows, PowerShell workspace shell
  • sandbox: danger-full-access
  • approval policy: never

I do not have the exact desktop build number from the rollout metadata.

What issue are you seeing?

An agent-created project session can stall on the first turn before any local tool command is invoked. The UI appears to be stuck in the model/thinking phase for a long time. Local rollout logs show that the session received the user message and later wrote exactly one reasoning response item, but did not proceed to commentary, tool calls, shell commands, git checks, or task completion.

This is a regression in practice: prior Codex versions did not commonly get stuck at the very first turn for this workflow, while the current version is causing similar hangs across many newly created sessions.

Reproduction context

The session was created by another Codex task using the Codex app thread-creation flow for a local project workspace. It was intended to be a visible project development session with a long initial task prompt.

Sanitized local session metadata:

session_id: 019f5ab3-2ab3-7da3-b727-f5646b23bac6
cwd: D:\ai\ullwin-product-display
cli_version: 0.144.0-alpha.4
originator: Codex Desktop
source: vscode
thread_source: subagent
model_provider: openai
model: gpt-5.6-sol

Local evidence from rollout log

The affected local rollout file was:

C:\Users\PC\.codex\sessions\2026\07\13\rollout-2026-07-13T16-58-44-019f5ab3-2ab3-7da3-b727-f5646b23bac6.jsonl

Relevant event sequence, sanitized:

2026-07-13T08:58:49.663Z  session_meta       session created
2026-07-13T08:58:49.663Z  event_msg          task_started
2026-07-13T08:58:59.297Z  turn_context       turn_id=019f5ab3-3f63-7302-8578-751ac2a1543e
2026-07-13T08:58:59.303Z  response_item      user message recorded
2026-07-13T08:58:59.303Z  event_msg          user_message
2026-07-13T09:00:40.040Z  response_item      reasoning only
2026-07-13T10:04:46.127Z  event_msg          thread_settings_applied / later restart or resume
2026-07-13T10:04:46.134Z  event_msg          task_started

Between 08:58:59 and 10:04:46, the rollout contains no custom_tool_call, no function_call, no shell_command, no apply_patch, no git command, and no task_complete for the first turn.

The first local tool calls only appeared after the later restart/resume sequence, not during the original first turn.

Steps to reproduce

  1. Use Codex Desktop on Windows with codex-cli 0.144.0-alpha.4.
  2. From an existing Codex task, create a new local project task/session with a long initial project-development prompt.
  3. Let the new session start normally.
  4. Observe that the first turn may emit only a reasoning item and then stop producing visible progress.
  5. Inspect the local rollout JSONL and verify that no tool calls were made during the stuck first turn.

Expected behavior

The first turn should either:

  • proceed to normal assistant output or tool calls;
  • fail with a visible error;
  • time out with a recoverable diagnostic state; or
  • clearly report that it is waiting on model/backend/compaction.

It should not silently stall after a single reasoning item with no local tool activity and no actionable UI state.

Actual behavior

The session appeared stuck in the first turn. Local logs show the model/response pipeline stopped after a reasoning response item, before any local command or tool execution. The user had to abandon or restart/resume the session.

Why this seems like an orchestration regression

The local project code was not reached. No shell command, git command, test command, MCP call, or filesystem operation ran during the stuck first turn. That makes the likely failure point the Codex app/session orchestration, model streaming, first-turn scheduling, or subagent/thread startup path rather than the target repository.

The issue also correlates with current agent-created sessions and long first prompts. It is occurring frequently enough to make multi-session workflows unreliable.

Suggested diagnostics to expose

It would help if Codex surfaced one of these states in the UI and/or rollout logs:

  • model stream still active vs disconnected;
  • first-turn scheduler waiting state;
  • context-compaction/preprocessing status;
  • last successful backend event timestamp;
  • reason for no tool-call progression;
  • automatic timeout/retry when only a reasoning item has been produced for several minutes.

Privacy note

I intentionally did not include the full original user prompt or encrypted reasoning payload because the prompt contained project-specific instructions. The event sequence above is enough to show that the first turn stalled before any local tool execution.

View original on GitHub ↗

3 Comments

JustinABG · 1 month ago

Additional reproduction from a manually created local project task (not agent-created).

Environment

  • Surface: ChatGPT/Codex desktop app on Windows
  • App build: 26.707.72221 (“Powered by Codex & OWL”, released 2026-07-14)
  • Failing model/settings: GPT-5.6 Sol, Extra High reasoning, Fast mode
  • Target: Local project, full access
  • First observed: 2026-07-15, approximately 30 minutes before this report

Actual behavior

Creating the first task in a newly added local project fails with a visible toast:

Error creating task
Timeout

In some attempts the UI remained on “Thinking” indefinitely. After signing out and back in, the pending user turn disappeared, indicating that it had not been persisted successfully. No local tool call or file operation was observed before the failure.

The project itself was verified independently:

  • Git root resolves to the project directory
  • Repository has a valid initial commit / HEAD
  • git status is clean
  • Re-adding the project under a short ASCII path did not resolve the failure

Control case

In the same desktop app/session and network environment, an existing local project works normally after switching to GPT-5.6 Terra with Light reasoning: the turn completes and Codex continues editing files. This makes a general authentication, filesystem, Git, or total connectivity failure less likely.

Reproduction

  1. Add a new local project in Codex Desktop on Windows.
  2. Select GPT-5.6 Sol with Extra High reasoning and Fast mode.
  3. Submit a relatively long first-turn project prompt.
  4. Observe task creation timing out, or the first turn remaining in “Thinking” without progress.
  5. Sign out/in; the unpersisted pending turn may disappear.

Expected

The new task should be persisted and begin normally, or fail with an actionable model/transport diagnostic and a recoverable retry path.

This appears closely related to the first-turn scheduling/orchestration regression described in this issue, while extending the reproduction to a manually created desktop project task. Project prompt contents and local user paths are intentionally omitted for privacy.

JustinABG · 1 month ago

Correction to my previous comment: further testing shows this is not limited to GPT-5.6 Sol / Extra High / Fast mode.

The same newly added local project also fails to create its first conversation with GPT-5.6 Terra Light using a minimal “reply only READY” prompt. Existing conversations in older projects still work with Terra Light in the same app session.

This narrows the failing boundary to new project task/conversation creation or persistence, rather than a Sol-specific model route. I filed the corrected, model-independent reproduction as #33288:

https://github.com/openai/codex/issues/33288

ofekron · 1 month ago

This looks like a session bootstrap lifecycle bug, not a normal tool/runtime failure. The useful boundary is before first user-visible action: create session, attach provider runtime, hydrate project context, persist the user message, emit the first model item, then transition to runnable turn state.

I would instrument each transition with a durable receipt: session id, source type, project id, provider run id, model profile, startup phase, last emitted event, and whether the turn has a live continuation. If the system has a reasoning item but no runnable continuation, recovery should mark the turn as stalled with that phase instead of leaving the UI looking indefinitely active.

I maintain Better Agent (https://github.com/ofekron/better-agent), where restart/recovery work treats hidden, child, and visible sessions as first-class owners because otherwise stalls like this are hard to distinguish from slow model work. If useful, a star helps other Codex runtime builders find it.