This past weeks performance has been deplorable
Codex Desktop App Bug Report
I’m experiencing a severe reliability regression in the Codex desktop app that has been ongoing for roughly the past week and became worse after updating the app within the last 1–2 days.
Environment:
Product: Codex desktop app / ChatGPT desktop app with Codex
Platform: Windows desktop
Plan: ChatGPT Pro
Approximate onset: about one week ago
Recent change: updated the desktop app within the last 1–2 days; behavior became noticeably worse afterward
Observed behavior:
I submit a normal, non-empty request, but the app sometimes freezes immediately or appears to stop registering the turn.
After force-closing and reopening the app, the submitted request may still not appear correctly. I’ve rebooted my desktop itself countless times as well.
I then sometimes see the error: “Failed to submit turn input. Empty input,” even though the input was not empty and I had entered one or more complete requests.
At times, submitted turns take a very long time to appear. After restarting the app, I can see that the request failed.
When a failed/stuck turn appears, attempting to steer or continue the conversation may also fail or become unresponsive.
Creating a branch conversation does not appear to reliably resolve the issue.
The desktop UI can freeze while the underlying Codex task appears to continue running. I have observed this because Voice could sometimes continue explaining what Codex was doing while the visible desktop app was frozen.
Even when the underlying task continues, processing becomes extremely slow and unreliable, and some instructions appear not to be processed at all.
This does not appear to correlate with project size. I have successfully worked on larger projects before, and I currently have other projects larger than the affected one.
The problem is not isolated to a single project; Codex desktop in general has behaved this way repeatedly over the past week.
The issue is disruptive enough that I have repeatedly had to force-close and reopen the app just to continue working.
Expected behavior:
Submitted text should register immediately and never be reported as empty when it contains content.
The desktop UI should remain responsive while Codex is running.
Restarting the app should not be required to make submitted turns appear or to recover normal interaction.
Steering and follow-up turns should work reliably after a task begins.
Actual impact:
The desktop app has become unreliable for normal development work. The freezing, missing/delayed turns, false “Empty input” errors, and repeated forced restarts are significantly interrupting active projects.
Please investigate this as a possible recent Windows desktop regression involving turn submission, UI state/sync, or desktop app responsiveness. I can provide screenshots, screen recordings, timestamps, app version information, and additional reproduction details if needed.
3 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
{"detail":"Bad Request"}
Current-version false
EmptyInput: non-empty composer text is rejected before remote transportI reproduced the exact UI error from this issue on a current Windows Desktop build while working in a long-running SSH-backed task:
The composer contained a normal, non-empty text request.
Environment
26.825.4187.0codex-cli 0.150.0-alpha.12.2codex-cli 0.150.1Transport evidence
I queried the remote app-server's structured log database immediately afterward:
EmptyInput:0;TurnInputreached the target task;TurnInputcontaining non-empty text.The remote server therefore did not produce this error. Desktop generated or surfaced
EmptyInputbefore remote transport. This is consistent with a renderer/composer serialization race, especially when a task already has an active turn and the next message must become steer or queued input.Expected behavior
When the composer visibly contains text, Desktop should serialize that exact content and either:
turn/start,turn/steer, or queued input according to task state; orClient-side validation must use the same structured input object that will be sent, not a stale or text-only projection that can be empty while the visible composer is not.
Actual behavior
EmptyInput;This also risks duplicate delivery: after a false rejection, the user cannot know whether the original text was queued locally, dropped, or safe to retry.
Suggested diagnostics and regression coverage
client_empty_inputfrom an app-server error in the UI and telemetry.This appears to be the specific false-empty-input failure described in the issue, separate from the backend/UI progress desynchronization in #39727.