Repository navigation
Windows Desktop 26.903.61454: follow-up messages cannot be sent after the first completed turn #44102
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.
- 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.
- 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.
- 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.
Activity
github-actions commentedon Sep 9, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
sanzhang2 commentedon Sep 9, 2026
Update: signing out of the ChatGPT Windows Desktop app and signing back in resolved the issue for me.
After re-authenticating, I tested both existing and newly created conversations, and follow-up messages are sending normally again across multiple turns.
So in my case, this appears to have been a local session/conversation-state issue triggered after the 26.903.61454 update, and re-login acted as an effective workaround.
gmehmetoglu commentedon Sep 9, 2026
Confirmed on a newer Windows Desktop build,
26.903.8094.0, with bundledcodex-cli 0.153.4.Additional isolation evidence from #44295:
completedin both the session transcript andthread_history_1.sqlite.thread-queued-followups-changed, but no secondturn/startorturn/steerappears.queue_1.sqlitehas no queued item for the affected thread, and the persistedqueued-follow-upsobject is empty.This supports the report's conclusion that Desktop retains or derives an incorrect busy/streaming state after the completed first turn, before the second request reaches app-server. I am closing #44295 as a duplicate of this issue.
sanmugamsalecha-bot commentedon Sep 10, 2026
Additional verification from the same affected Windows installation (2026-09-10):
OpenAI.Codex_26.903.8094.0_x6426.903.61454--user-data-dirprofile.latestTurnStatus=completedtogether withmarkedStreaming=true.turn/startis emitted after the second Send action.EXDEVerror, so changing the Chromium profile path alone does not resolve this regression.OpenAI.CodexBeta_26.727.4816.0_x64passes the exact same-page test on the same machine and account: two ordinary typed messages can be sent consecutively without navigating or creating another conversation.This comparison further isolates the regression to desktop client state handling in the current stable build rather than authentication, service connectivity, or the conversation data itself. Please ensure that a completed latest turn cannot leave the composer in a streaming/busy state, and add a regression test requiring at least two typed sends in the same visible conversation.
I can provide additional sanitized logs if a maintainer needs them; no private prompts, account identifiers, session IDs, or local paths are included here.
Susan1433 commentedon Sep 10, 2026
thread/status/changed targeted_connections=0during resume.-The problem was solved after re-login, but it still occurred after restarting the Codex.
This appears to be a renderer/conversation lifecycle regression rather than a quota, authentication, local injector, or installation issue. Sanitized logs are available if needed.
SIMON-WORLD commentedon Sep 10, 2026
Adding a cross-surface reproduction on Windows Desktop
26.903.61454(released Sep 8, 2026).I can reproduce this on the same cloud conversation across Desktop and Web:
chatgpt.com.ChatGPT stream recovery polling timed outin Desktop when opening conversations that had previously been used on Web.This seems broader than only a disabled Send button after a completed first turn: Desktop can temporarily hold an inconsistent active-turn/conversation state while Web continues to show a usable current state for the same cloud conversation.
I am not asserting a specific root cause, endpoint, or transport failure.
msgtechltd commentedon Sep 10, 2026
Windows desktop follow-up submission hangs before turn/start
Observed September 10, 2026. App version 26.903.71938; Windows package 26.903.9818.0; bundled Codex backend 0.153.4.
Reproduction performed directly in the desktop UI:
The same failure occurs inside a project. Tested GPT-6 Astra Medium. Changing Queue to Steer, ChatGPT to Codex interface, opening the conversation in a separate window, and enabling the plain-text composer all reproduce the same failure. Original Queue and rich-text preferences were restored. Restarting, disabling a custom model catalog override, and clearing generated Cache / Code Cache / Session Storage did not fix it. The app reports it is up to date.
Local inspection shows the first turn completes and conversation read/resume works. The follow-up does not produce turn/start. This supports a desktop pre-submission hang; the exact unresolved operation is not identified. CLI/desktop sync conflict is not established. The markedStreaming=true resume log field is hardcoded in this build and should not be treated as proof that a completed turn remains active. Unknown-conversation events can belong to auxiliary title-generation threads.
Related open reports:
#44102
#40968
Requested engineering action: identify the pending frontend operation between the composer submission handler and turn/start; provide a supported fix or signed known-working Windows build. No private chat content, account identifiers, or raw logs are included in this report.
cbcs commentedon Sep 11, 2026
Additional reproduction and state-isolation evidence from Windows Desktop
26.903.71938.Symptoms:
~/.codexdirectory restores behavior only temporarily; the issue returns after some hours.Key isolation result:
~/.codexdirectory.~/.codex/.codex-global-state.jsonand letting Desktop regenerate it immediately restored multi-turn submission.A/B comparison of the persisted permission / agent-mode state:
Broken state:
Healthy state regenerated by the app:
The broken file also contained stale top-level state including
thread-project-assignments,queued-follow-ups, andthread-writable-roots, while the regenerated healthy file containedthread-workspace-root-hints/projectless-thread-ids.queued-follow-upsitself was empty, so the failure does not look like an actually queued second turn.This suggests a persisted permission/agent-mode migration or desynchronization problem: legacy
guardian-approvalshost state can survive while the current client derivesgranularmode from configuration. The first turn still completes, but the composer becomes blocked when preparing the follow-up turn.This seems related to the stale
guardian-approvalsstate discussed in #40698, and may be a useful trigger/root-cause clue for this follow-up submission regression.Local config note: the only manual config change was:
Removing/rebuilding the global state fixes the UI without changing that config, so the config line itself does not appear to be the direct cause.
Workaround confirmed on this machine: fully exit Desktop, rename
.codex-global-state.json, restart Desktop, then multiple turns work again until the state regresses.Rury233 commentedon Sep 11, 2026
I can reproduce the same issue on Windows 10 with Codex package version
26.903.9818.0.The behavior is:
I found a workaround:
This suggests the issue may be related to persisted authentication/account session state rather than only the conversation or workspace state.
Before re-login, I also observed:
latestTurnStatus=completedmarkedStreaming=trueDuring the failed second submission, no new
turn/startwas observed.Feedback ID:
01a090a8-0b7b-70e0-823b-a070e3668142I have not yet confirmed whether the issue will return after the new login session has been active for some time.
stracterr commentedon Sep 11, 2026
Workaround found on Windows without restarting Codex
I can reproduce this issue on:
OpenAI.Codex 26.903.9818.0 — Windows
My logs show the same inconsistent state:
latestTurnStatus=completed markedStreaming=true
I found a workaround that restores the Send button without closing Codex, resetting .codex, or restarting the whole application.
Steps:
Open Codex's built-in Task Manager.
Go to All Tasks.
Find the stuck “Prerender” / “Renderizador anticipado” processes.
End those tasks.
Codex automatically refreshes/recreates the renderer.
The previously disabled Send button becomes usable again.
I had multiple stuck Prerender processes. After terminating them, the app refreshed and messaging immediately worked again.
This seems consistent with the renderer keeping a stale streaming state even though the turn is already marked completed.
Importantly, I did not need to kill the main renderer, app-server, Network Service, Storage Service, restart Codex, install Git, or reset local Codex data.
This may be useful as a temporary workaround and could also help identify which renderer state is causing the regression.
7 remaining items
Yevhenii-ev commentedon Sep 13, 2026
I can confirm that this issue is still reproducible on Codex Desktop 26.908.40834 on Windows.
In my case:
the first message in a new session sends successfully;
Codex responds normally and the first turn completes;
the second message remains in the composer with the Send button spinning indefinitely;
the second message is never recorded in the session transcript as a new UserMessage;
there is no new turn/task start after the first task_complete;
I do not see corresponding websocket, timeout, 401, or 403 errors in the affected session log.
I reproduced this:
after fully restarting Codex Desktop;
after signing out and back in;
in brand-new sessions;
in a completely new project;
across multiple Codex models;
on a different network/mobile hotspot;
with VPN/proxy disabled.
While the second message is stuck, the integrated PowerShell terminal remains responsive. Get-Date and Get-Location execute normally, so the app itself is not completely frozen.
Codex is also not waiting for an approval. The affected session uses approval_policy: on-request.
Feedback ID from the in-app / feedback flow:
no-active-thread-01a09a9a-ef08-7ae1-9b37-7c9ff95d7122
I have also reported this through OpenAI Support with the relevant session logs.
This looks like the desktop client/UI getting stuck before the second turn is actually submitted.
Yevhenii-ev commentedon Sep 14, 2026
Temporary workaround that may help others experiencing this issue:
I found that while follow-up messages are stuck and cannot be sent from Codex Desktop on Windows, I can still continue the same Codex conversation from the ChatGPT mobile app.
Messages sent from my phone go through normally and Codex responds, even while sending from the Windows Codex Desktop app is not working.
So, if anyone urgently needs to continue working while this bug is being fixed, try opening the affected Codex conversation in the ChatGPT mobile app and send your prompts from there.
This is obviously not a replacement for the Desktop app, but it works as a temporary workaround for me.
snilia commentedon Sep 14, 2026
codex CLI still works fine,
so you can use it.
if you want to read in the codex desktop, open cli first and enter your conversation there, then open codex on desktop.
that way you can send your messages using powershell, and then read them on codex. you do however need to refresh desktop conversation to see what it wrote.
ksp1121 commentedon Sep 15, 2026
Additional reproduction on Windows Desktop package
26.908.4834.0(Windows 11 Pro 25H2, build26200.9445, x64):Conversation state not found, followed by a successfulthread/resumeandmaybe_resume_success.turn/start.Controlled sign-out/sign-in result on 2026-09-14 (KST):
12:36:24—account/logoutcompleted witherrorCode=null.12:36:42— account lookup completed withauthenticatedAccountPresent=true.12:37:05— a follow-up in a recently created existing chat successfully emittedturn/start.12:39:19— the affected legacy chat reopened and completedthread/resume; its latest turn was reported ascompleted.turn/startwas emitted before the view became inactive at12:44:46, and the session transcript remained unchanged at its pre-test12:11:49timestamp.The user also reports that signing out and back in restores sending only temporarily before the failure returns. Therefore re-authentication is a transient workaround on this installation, not a durable fix.
This is consistent with the pre-submission renderer/composer failure already documented here. One additional migration clue is that 97 non-archived user threads created by older desktop versions have no
originatorvalue in the local thread index, while newly created working threads useoriginator=codex_work_desktop. This correlation does not by itself prove causation, but may help isolate legacy conversation-state hydration.No private prompts, account identifiers, thread IDs, local paths, or raw logs are included. Sanitized timestamped excerpts are available if a maintainer requests them.
huxaiver-byte commentedon Sep 15, 2026
Windows Codex Desktop:第二条消息无限转圈、界面语言异常及完整排查记录
日期:2026 年 9 月 15 日
相关问题:#44102
补充参考:#45069
这份记录整理了我本人实际进行的操作、我观察到的结果,以及 AI 在本机检查日志和代码后得到的证据。以下明确区分已确认事实和推测,不把临时恢复当成永久修复。
一、我遇到的问题
我使用 Windows Codex Desktop 时,新聊天第一条消息通常可以发送,模型也能正常回复并结束。但在同一个聊天发送第二条消息时,发送按钮会变成转圈,文字停留在输入框,不进入聊天历史,长时间等待也没有结果。
另一个伴随现象是界面语言:正常运行时主体界面常为中文;出现异常的运行实例有时主体界面变成英文,而部分原生菜单仍能显示中文。我没有证据证明语言异常直接导致发送失败,但两者同时出现和恢复的现象值得记录。
我要求整个排查过程保留当前登录,不退出账号,不修改或删除 auth.json,不清空 .codex,不删除聊天历史,任何本地状态修改前必须先备份,并优先进行只读分析。
二、在这次详细排查前,我已经做过什么
1. 检查全局状态及其备份
此前已检查
.codex-global-state.json和同名.bak:在当时的检查时间,两者均为 1,103,295 bytes,修改时间一致,SHA256 完全相同。这说明该 .bak 不是可以直接恢复的历史健康状态。当时的字符串检查结果是:
因此,我没有直接照搬其他用户“删除或重建 global state”的方法。字符串出现与否也不是完整的运行时状态验证。
2. 在 Codex 内置任务管理器结束备用渲染程序
我打开了 Codex 内置任务管理器,看到浏览器、渲染程序、GPU、Network Service、Storage Service 和备用渲染程序,没有明确名为 Prerender 的条目。
我尝试结束“备用渲染程序”:原 PID 为 13136,随后应用创建了新的 PID 36964。Browser CPU 一度下降,但第二条消息发送失败没有恢复。
这个实验只说明重建该备用渲染程序没有解决我的问题,不能证明主窗口 renderer 没有问题,也不能把 Spare Renderer 等同于其他用户报告中的 Prerender。
三、AI 在本机检查到了什么
AI 主要读取了安装包、Desktop 日志、配置及聊天记录,没有修改认证信息或清理历史。
OpenAI.Codex 26.908.9136.0。codex-desktop-repaired的自定义数据目录;后来的运行实例使用默认启动方式,没有该覆盖参数。这个变化不是本次 AI 排查主动设置的。desktop.localeOverride。进程中出现的--lang=zh-CN,不能直接当成前端已经应用中文翻译的证据。loading-local-config等待分支:提交动作可能先被暂存,界面显示 spinner,待配置或工作目录状态就绪后才真正提交。codex-home无数据时,工作目录状态保持 loading 的路径。这与 Codex desktop (Windows): follow-up messages in existing threads never send #45069 报告者描述的链路相似,但没有在我的失败实例中抓到对应 Promise 或 query 的实时内存值。enable_i18n开关、locale 来源及异步翻译资源加载。原生菜单中文与主体界面英文并不必然矛盾。以上提供了候选解释,但 AI 没有定位并修复我的具体根因。
四、我配合进行的第一次定时测试
15:56:在已有聊天点击第二次发送
我在标题以“可以。下面我给你整理……”开头的已有聊天中,通过 Windows 普通输入框尝试发送
SECOND-DIAG-0915,并报告点击时间约为 15:56,主体界面英文。随后,我通过手机或其他入口,把测试文字、时间、聊天标题和界面语言发给 AI,并继续发送了“继续”。我明确确认,后面这些成功发送的消息不是通过同一个 Windows 普通输入框发送的。
后台核对结果:
这形成了同一聊天的实际对照:Windows 普通输入框失败,手机或其他入口可以继续执行。
本次还发现的状态差异
恢复聊天时,一条日志中后端返回 never / dangerFullAccess,而前端推导为 on-request / workspaceWrite,并记录 hasLatestThreadSettings=false 等字段。
这说明两边记录的状态存在差异,但没有证明这个差异就是发送失败的原因,也没有证明这些派生值已经写回后端。
15:58 左右该实例结束,AI 因此没有取得那次失败时的前端内存快照。
五、我配合进行的第二次独立测试
AI 让我另开一个测试聊天,把实验与排查聊天分开。我按要求进行了以下操作:
后台核对结果:
因此,模型能完成首轮,线程设置更新也可以成功;第二条消息仍未形成新的持久化回合。
AI 随后承认:保持窗口打开只是保留故障现场,当前实例没有开放调试接口,不能因此就直接读取卡住的 Promise。此前让我保持窗口以便“抓取阻塞状态”的说法不够准确。
六、我配合退出应用,尝试调试启动
在我表示准备好后,AI 生成并启动了一个隐藏的 PowerShell 后台助手。设计是:
16:09:02,助手状态记录为“等待用户退出”。
我随后直接退出了 Codex,但应用没有按预期自动重新打开。
后台核对发现:
因此,自动启动方案没有完成,也不能声称该方案已完成备份。
AI 推测,隐藏 PowerShell 可能仍受 Codex 的进程组或作业生命周期管理,随 Codex 一起退出。由于没有取得进程退出码或相关审计记录,这仍是推断。AI 承认其后台助手设计没有保证独立存活,自动重开的承诺过于确定;这不是我的操作错误。
七、我手动重新打开后,界面和发送恢复
自动重开没有发生后,我手动打开了 Codex。
这一次我观察到:
后台日志提供了相应支持:
这次恢复发生在我手动正常启动以后,不是后台助手自动启动的结果,也不是 AI 执行 query cancel/refetch、修改配置、清理缓存或重新登录的结果。
本次可以认定当前运行实例恢复了,不能认定永久修复。
八、哪些结论需要修正或保留
九、我最终的使用选择
这轮排查让我反复测试、提供时间和标题、在手机与电脑间切换、保持故障窗口、退出并重新打开应用。最终后台助手没有完成预期工作,恢复发生在我自己手动重新启动以后。现在我更愿意先使用能实际完成工作的入口,等待后续版本更新。
用AI修AI就是浪费时间的行为,更浪费算力。最好的方法就是用手机的远程操控来使用 CodeX。然后等下一次更新就完事了。
faelp22 commentedon Sep 17, 2026
Update: I found the cause in my case
I wanted to share an update because this may help other users experiencing the same Codex Desktop freeze.
In my environment, the issue was related to an external MCP server used by Codex Desktop.
My setup is:
The important detail is that I was already using STATELESS before the problem was fixed, and I am still using STATELESS now.
So, in my case, switching from
STATELESStoSTREAMABLEwas not necessary.Previous configuration
Initially, my MCP server was configured approximately like this:
At that time, Spring AI 2.0.1 was resolving MCP Java SDK 2.0.0.
Codex Desktop still performed requests/probes such as:
The MCP server logs showed:
and:
and:
This correlated with Codex Desktop conversations becoming stuck.
In some conversations, the first interaction would complete successfully, but later messages could remain indefinitely in a busy/spinning state.
MCP Java SDK bug
The main issue appears to have been the behavior of MCP Java SDK 2.0.0 in STATELESS mode when receiving a request for which no handler was registered.
Instead of cleanly returning the expected JSON-RPC error, such as:
the missing handler could propagate as an HTTP transport failure / HTTP 500.
This is documented in the MCP Java SDK:
modelcontextprotocol/java-sdk#784modelcontextprotocol/java-sdk#800There is also a Spring AI issue related to the SDK dependency version:
spring-projects/spring-ai#6998What I changed
I kept:
but upgraded/overrode the MCP Java SDK from:
to:
I also changed my MCP capabilities so that they are now all enabled:
So the current working configuration is:
Result
After these changes:
resources/liststopped producing the HTTP 500 errorresources/templates/liststopped producing the HTTP 500 errornotifications/initializedmissing-handler warning disappearedSTATELESStoSTREAMABLEOne particularly interesting result was that some already-stuck conversations started working again after the MCP server was updated.
Maven note for Spring AI 2.0.1 users
In my dependency tree, Spring AI 2.0.1 was still resolving MCP Java SDK 2.0.0.
I explicitly aligned the MCP SDK to 2.0.1 using its BOM:
Then I verified the actual resolved versions with:
to make sure all MCP Java SDK modules were using
2.0.1.Important clarification
I cannot say with certainty that enabling:
was independently responsible for fixing the problem.
Two things changed in my environment:
However, the HTTP 500 behavior I was seeing matches a known bug in MCP Java SDK 2.0.0, and that bug was explicitly fixed in 2.0.1.
The key point is that STATELESS itself was not the issue, because my server was STATELESS both before and after the fix.
My current working setup is still:
Possible Codex-side robustness issue
There may still be a Codex-side robustness issue worth investigating.
An external MCP server returning an unexpected HTTP 500 during an optional MCP probe should ideally surface an MCP error and allow the conversation to continue.
It probably should not leave the entire Codex conversation permanently stuck in a busy/streaming state.
So even though updating the MCP Java SDK fixed the problem for me, Codex may benefit from more defensive handling when an MCP server fails during capability discovery or initialization.
For anyone using Spring AI / Java MCP servers and seeing similar Codex freezes, I would recommend checking the MCP server logs for:
and checking the actual resolved MCP Java SDK version.
In my case, the combination that is currently stable is:
and Codex Desktop has remained stable so far.
faelp22 commentedon Sep 17, 2026
Additional observation: Codex should probably isolate MCP failures from the conversation lifecycle
Although I was able to fix the immediate problem by updating my own MCP server, I think there is still an important Codex Desktop robustness issue here.
In my case, I had access to the MCP server source code and was able to:
After doing that, Codex stopped freezing and even previously stuck conversations became usable again.
However, most Codex users will not necessarily have control over the MCP server they are using.
The MCP server could be:
In those situations, the Codex Desktop client should ideally protect the main conversation lifecycle from the MCP failure.
The failure mode I observed was approximately:
I think the preferable behavior would be something closer to:
In other words, an external MCP server failure should probably not be able to leave the entire conversation permanently stuck in a streaming/busy state.
Some possible defensive behaviors on the Codex side could be:
streamingif an MCP request fails;This seems especially important because an MCP client cannot assume that every connected MCP server is perfectly implemented or fully up to date.
There is also a related report in #29376 describing a similar principle: a failing remote MCP server should not block the core Codex Desktop conversation/thread workflow.
In my case, fixing the MCP server solved the immediate problem, but I believe Codex Desktop could still benefit from defensive isolation so the same class of MCP failure does not make the entire chat unusable for users who cannot modify the remote MCP server.
tajayuki1111-blip commentedon Sep 19, 2026
Recurrence after a brief recovery — 20 September 2026 (JST)
The normal Windows composer became usable briefly, but the same sending problem has returned. This is not a sustained fix.
Current Microsoft Store package:
OpenAI.Codex 26.915.4065.0.After reviewing the MCP-related workaround in this thread, we found a failing local Storyline MCP connection and disabled that connection through its supported configuration, preserving the configuration backup and all conversation data. This environment does not use the Java/Spring MCP server stack described above.
Observed sequence (JST / UTC+09:00):
The desktop logs inspected around the two failed submissions did not show a new
turn/startfor that conversation. Successful configuration and conversation-loading responses were present elsewhere in the same process. The exact blocked step and root cause remain unconfirmed; the brief improvement cannot be attributed conclusively to the MCP change.Earlier in this case, typed messages through ChatGPT mobile Remote to the same PC-hosted task could continue the work when the normal Windows composer could not. This was not a separate mobile/cloud conversation.
No chat history, drafts, video assets, project data, or local databases were deleted. Please investigate the recurrence and provide a data-preserving recovery method or a confirmed fixed build. Has anyone else had normal sending work briefly and then fail again while the suspected MCP remained disabled?
Pretic commentedon Sep 21, 2026
Additional reproduction on Windows 11 / ChatGPT Desktop 26.903.61454.
Environment:
Observed behavior:
Important observation:
This looks consistent with a stale renderer/composer state or Work thread/session rehydration/resume problem rather than a general connectivity or authentication failure.
Expected behavior:
Existing Work conversations should remain able to submit follow-up messages without requiring a full desktop restart.
I also tried running
codex doctorandcodex login statusin PowerShell, butcodexwas not installed / not on PATH on this machine. That appears unrelated to the desktop Work failure.Screenshots are available showing:
codexcommand not found.xx0-hue commentedon Sep 21, 2026
Additional reproduction: Windows 10, Desktop 26.915.31945 — 21 September 2026
The same follow-up submission failure is reproducible on this installation.
Environment
26.915.31945OpenAI.Codex_26.915.4065.0_x640.155.0-alpha.9.2Reproduction
Both new and existing conversations are affected. Reopening the affected conversation after restarting the app did not recover sending in the latest test.
Troubleshooting already attempted
[desktop] followUpQueueModefromqueuetosteer, verify the saved value, restart, and test a new conversation. No improvement.exec --skip-git-repo-checkinvocation of the exact bundled CLI successfully returned a short reply. This was a single-turn CLI control test, not a verified multi-turn CLI test.Sanitized main-log excerpts from the new-conversation reproduction
Timestamps are UTC. Conversation identifiers are consistently replaced by A and B; omitted fields are not reproduced.
The captured log continues through 04:04:53 UTC without another
turn/startafter the failed follow-up attempt. It also containsReceived broadcast but no handler is configuredwarnings forthread-stream-following-changedandthread-stream-following-status-requested.These are observations, not proof that prewarming or the unknown-conversation events cause the failure: B may be an auxiliary thread. The exact root cause remains unconfirmed.
Please provide a confirmed fixed build or a data-preserving recovery method. Full logs, local usernames/paths, and raw session identifiers are intentionally omitted from this public report.
QifengWu-2001 commentedon Sep 21, 2026
xennon101 commentedon Sep 27, 2026
Additional reproduction on September 28, 2026: follow-up submission still stalls on Windows package OpenAI.Codex 26.924.2738.0 (internal release 26.924.22138, build 11645).
Read-only inspection confirmed:
At the matching submission time, logs recorded:
This establishes that desktop accepts/persists the message but fails to advance it into a backend turn. Ordinary queueing behind an active response does not explain this: the chat was idle and the message requested send-now. The missing-handler warnings are correlated evidence, not proof of the exact root cause. An unresolved local query, stale frontend state, dispatch ownership or a send lock remain hypotheses.
The user has experienced recurring submission failures across recent releases. A previously installed third-party Send-button repair targeted configuration loading, but its diagnostic attachment failed on this build; it did not establish the current cause. This was not a clean-profile A/B test. No queues/settings were reset or active work restarted during capture.
Related reports: #46590 and #44295. We have not proven they share the exact underlying defect.
Please investigate pending/send-now-to-turn dispatch and completion-to-idle reconciliation, provide a supported recovery path, and add regression coverage for consecutive messages after completion and desktop/mobile state convergence. A stuck submission should expose an actionable retry/error state instead of silently remaining pending. This repeatedly interrupts normal multi-turn work.
Private prompts, chat IDs, account details, workspace paths and raw log bundles are omitted.
xennon101 commentedon Sep 28, 2026
Follow-up to my earlier report on Windows package 26.924.2738.0 / app 26.924.22138 (build 11645): restarting the renderer process appears to release the stuck messages and restore subsequent desktop submissions.
Observed by the user after the earlier capture:
This is a user-observed recovery, not an instrumented before/after trace. We have not established how long it lasts, whether every queued item executed exactly once, or which pending request/readiness/ownership state the renderer restart cleared. It supports investigating desktop renderer state and submission reconciliation, but does not prove that the correlated missing-handler warnings caused the fault.
Please include renderer recreation and recovery of already-persisted send-now/pending messages in regression coverage, including subsequent consecutive submissions and protection against duplicate dispatch. Related exact-version queue report: #48550.
pleiadess commentedon Sep 29, 2026
I know this isn't the place, but... one month of this. I'm really tired. I'm switching to Claude.
sinec09-cloud commentedon Oct 3, 2026
Resolved on my Windows machine by Store package 26.930.2377.0 (app release 26.930.21537, buildNumber 12776, bundled app-server 0.159.0-alpha.12.1), after ~20 consecutive failed launches on 26.908, 26.915, 26.928.2636.0 and 26.928.3736.0.
Worth knowing if you are bisecting: the working build ships app-server
0.159.0-alpha.12.1, a lower version string than the0.159.2in the broken builds, so version numbers alone will mislead you.Also, every failing session here logged
[sparkle] in_app_updates_policy_timeout policy=pending timeoutMs=300000while the renderer never reachedapp routes mounted; the working build logs no such timeout.Full timeline, the per-conversation counts from when only resumed chats were blocked, and the list of things that did not help (two clean reinstalls, app reset, empty sessions directory, Defender exclusions, stale config repair) are in #45187, most recently #45187 (comment). Posting here because this thread has the most affected users.