Codex desktop tool-result cards intermittently return {"detail":"Bad Request"} and terminate the active turn
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Description
Codex desktop repeatedly displays:
{"detail":"Bad Request"}
after a tool operation. The active assistant turn then stops without completing the requested task.
This appears to be a Codex desktop transcript/tool-result rendering problem rather than a failure of the underlying local operation. In several instances, the requested filesystem action completed successfully even though the transcript displayed the Bad Request card.
Environment
- Operating system: Windows 10
- Application: Codex desktop
- Model: GPT-5.6 Sol High/Medium
- Date first observed: 16 September 2026
- Time zone: Asia/Calcutta (IST)
- Project type: Local ChatGPT project
- Session ID:
[INSERT SESSION ID FROM THE / FEEDBACK FLOW] - Codex version:
[INSERT VERSION FROM HELP/ABOUT]
Frequency
The problem occurred repeatedly in the same task—at least ten times—and persisted across subsequent user messages.
Steps to reproduce
- Open an existing, long Codex desktop task containing several image attachments and image-related tool results.
- Ask Codex to inspect local images or perform a local file operation.
- Codex initiates a tool call.
- The underlying operation may complete successfully.
- Instead of rendering the normal tool result, the transcript displays a card containing
{"detail":"Bad Request"}. - The assistant does not resume after the tool operation and fails to finish the response.
- Sending another message sometimes allows the conversation to continue, but the error reappears on a later tool call.
Tool operations observed near the failure
The error has appeared following different tool-result types, including:
- Viewing one or more local images.
- Returning grouped image previews.
- Copying a generated image into the project workspace.
- Reading local files or dependency information.
- Documentation/web-search tool results.
Because it is not limited to one image file or one tool, this may involve transcript serialization or rendering rather than the individual tool implementation.
Expected behaviour
After the tool completes:
- The tool-result card should render normally.
- Control should return to the assistant.
- The assistant should continue and finish the active turn.
- A UI rendering failure should not terminate the task.
Actual behaviour
- The transcript displays
{"detail":"Bad Request"}. - No actionable explanation or request ID is provided.
- The assistant’s active turn terminates.
- The user must send another message to resume the task.
- The underlying file operation may already have completed, creating uncertainty and possible duplicate actions.
Impact
This disrupts long-running image workflows and creates a risk of:
- Repeating operations unnecessarily.
- Generating duplicate files.
- Accidentally repeating paid external generations.
- Losing confidence about whether an operation completed.
- Requiring frequent task restarts.
Troubleshooting already attempted
- Confirmed there was no pending approval request.
- Continued with smaller and more focused prompts.
- Reduced grouped image previews.
- Used one image preview instead of several.
- Avoided unnecessary image rendering.
- Confirmed that some local file operations succeeded despite the error.
- Checked that no active OpenAI service incident was reported.
Privacy note
The affected task contains private images and local filesystem paths. A complete unredacted session transcript should not be requested through a public GitHub issue. I can provide the session ID and a redacted timestamped excerpt. Please provide a secure upload method if the complete session data is required.
Attachments
- Redacted screenshot showing the
{"detail":"Bad Request"}card. - Redacted screenshot showing the preceding tool operation.
- Session ID from the in-app
/feedback workflow. - Approximate timestamps for each occurrence.
Additional diagnostic request
Please expose a request ID, tool-call ID or more specific error code in the UI when this happens. The current generic JSON response does not indicate whether the failure occurred during tool execution, result serialization, transport or transcript rendering.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure in Codex desktop using the described long task with image attachments, then inspect the tool-result card and transcript rendering flow; no source file or test is named in the report. Done means tool results render normally, the active turn continues after the operation, and failures expose a request ID, tool-call ID, or specific error code.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100