openai / openai/codex

[macOS desktop] Turns finish without replies; task-reading tools also omit later visible replies

Open
#44,806 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

app bug
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Environment
  • ChatGPT desktop 26.903.71938, build 8576 (com.openai.codex).
  • Bundled codex-cli 0.153.4.
  • macOS 26.6.1 (25G76), Apple Silicon (arm64).
User-visible failure

Several ordinary requests finished without any assistant response appearing. Earlier commentary remained visible. This affected a newly started task and an existing task. The user supplied screenshots confirming the gaps and later confirmed that new replies are visible.

Original blank turns

The affected new task's initial turn completed in 5,200 ms. The affected existing task's blank turn completed in 4,925 ms. Both used gpt-5.6-sol. Their saved rollout records contain task_started and task_complete, with last_agent_message:null and no assistant message for the turn. The empty turns therefore are not established to be a simple rendering problem: no answer was found in their saved history.

Follow-up tests reveal a separate read discrepancy

Two explicit one-line diagnostics were sent through send_message_to_thread to the existing affected task, without project actions:

Model Duration Saved reply User confirms reply visible read_thread / wait_threads
gpt-5.6-sol 8,142 ms Response delivery test: OK. Yes Empty items / null latestAssistantMessage
gpt-6-astra 5,783 ms Response delivery test: OK. Yes Empty items / null latestAssistantMessage

Both diagnostic replies exist in the rollout JSONL and in thread_history_1.sqlite as agentMessage records with phase:final_answer. The corresponding thread_turns rows have final_agent_item_id populated. Despite that, read_thread returns items:[] and wait_threads returns latestAssistantMessage:null. Re-reading after completion still produces empty items. The app's bundled frontend explicitly supports final_answer; the phase label itself has not been shown to be the defect.

Health checks and limits

Bundled diagnostics confirm successful app-server initialization, configured ChatGPT authentication, HTTP endpoint reachability, a successful Responses WebSocket handshake, and accepted macOS app security assessment. Both models produce visible new replies, so the original problem is not established to be model-specific. No cache clearing, reinstall, database edits, or security-setting changes were performed during these tests.

The original blank-turn cause remains unknown. Fresh diagnostic requests now work visibly, but that does not prove the intermittent failure is permanently fixed. The task-reading discrepancy is independently reproducible and can mislead coordinating agents into concluding that a visible response is absent.

Expected behavior

Every accepted ordinary request should yield a visible response or an explicit error. Task-reading and waiting tools should report the replies present in the saved history and visible UI.

No private prompts, screenshots, full logs, credentials, or account identifiers are attached.

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 at the send_message_to_thread, read_thread, and wait_threads entry points, then compare their results with the rollout JSONL and thread_history_1.sqlite records described in the report. Reproduce the diagnostic requests and verify that saved final_answer records are surfaced by both reading tools, while preserving the expected visible response or explicit error for ordinary requests.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
backend-api-design, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
46/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.