openai / openai/codex

Windows Desktop 26.903.61454: follow-up messages cannot be sent after the first completed turn

Open
#44,102 25 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app app-server bug windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using (From “About Codex” dialog)?

Windows Desktop 26.903.61454

What subscription do you have?

plus

What platform is your computer?

Microsoft Windows NT 10.0.22631.0 x64

What issue are you seeing?

After updating ChatGPT Desktop for Windows to version 26.903.61454 on September 9, 2026, I can no longer send follow-up messages in a conversation.

The issue affects both existing and newly created conversations:

In existing conversations, I can type into the composer, but the Send button remains disabled/gray. Clicking it changes the button to a spinner, but the message is never added to the conversation.
In a newly created conversation, the first message sends normally and receives a response, but any subsequent message in the same conversation cannot be sent.
The problem started immediately after updating to version 26.903.61454.

The web version of ChatGPT is not showing the same composer behavior, so this appears to be specific to the Windows Desktop client.

What steps can reproduce the bug?

Launch ChatGPT Desktop on Windows.
Create a new conversation.
Send the first message.
Wait until the assistant finishes responding.
Type a second message.
Click the Send button.

Alternatively:

Open an existing conversation whose previous response has already completed.
Type a new message.
Click Send.

What is the expected behavior?

Once the previous turn has completed, the composer should return to an idle/enabled state and allow another message to be submitted normally.

Additional information

Relevant Log Evidence

There appear to be two related state inconsistencies.

  1. Completed turns are restored as still streaming

When existing conversations are resumed, the Desktop client logs states such as:

latestTurnStatus=completed
markedStreaming=true

This happens across multiple conversations.

This suggests that the app-server considers the latest turn completed, while the Desktop renderer still restores the conversation as streaming/busy.

That would explain why the composer remains disabled after the response has already completed.

  1. No second turn/start is generated

For a newly created conversation, the first turn is submitted normally:

method=thread/start
...
Conversation created conversationId=01a08531-3ff4-78f1-b9f3-a652dd06a48c
...
method=turn/start
errorCode=null

However, after reproducing the issue by attempting to send the second message, there is no second method=turn/start entry anywhere later in the log.

This suggests that the second Send action is getting stuck in the Desktop UI / renderer state before the request reaches the local app-server.

  1. Unknown conversation lifecycle events

The same session also contains:

Received turn/started for unknown conversation
conversationId=01a08531-419b-7e92-9ba0-e40c7138e4cf

and later:

Received turn/completed for unknown conversation
conversationId=01a08531-419b-7e92-9ba0-e40c7138e4cf

The visible conversation created at the same time was:

01a08531-3ff4-78f1-b9f3-a652dd06a48c

I am not certain whether the 419b... conversation is an auxiliary/ephemeral thread, but it may be relevant to the renderer/conversation routing issue.

Additional Notes
The local app-server initializes successfully.
Authentication succeeds.
The first turn/start succeeds.
This does not appear to be a general connectivity failure.
The failure is highly deterministic: first message works, follow-up messages do not.
The regression started immediately after updating to 26.903.61454.

I can provide the full Desktop logs from the reproduction session if needed.

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

Reproduce the failure in the Windows Desktop UI and inspect the renderer/app-server logs around thread/start, turn/start, turn/started, and turn/completed. Trace why a completed turn leaves the composer disabled and why the second send does not generate turn/start; done means follow-up messages send normally after the first response in existing and new conversations.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.