[macOS] Blank image block in ChatGPT conversation: composite sediment reference fails with 422 Invalid file_id
Nobody has claimed this yet.
- 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)?
26.901.41600, read from the installed application's Info.plist. The app is branded ChatGPT on this installation; its bundle ID is com.openai.codex.
What subscription do you have?
Not specified.
What platform is your computer?
macOS 27.0, arm64.
What issue are you seeing?
When opening an existing ChatGPT conversation about uploaded course slides in the desktop app, a large empty light-gray rounded rectangle appears above the assistant's final answer. The text, formulas, and file citation card below it render normally. The same conversation on chatgpt.com has no corresponding image or blank rectangle (confirmed by the user).
Desktop logs for this conversation show a failed image download with HTTP 422. The failure repeats in two application sessions, including after an app restart. Sanitized excerpt (identifiers replaced; pointer structure preserved):
sa_server_request_failed
method=get
routePattern=/files/download/{file_id}
status=422
url=/files/download/<asset-prefix>#file_<redacted>#p_0.<redacted>.jpg?conversation_id=<redacted>&download_intent=false&inline=true
errorMessage={"detail":"Invalid file_id, expected to start with 'file-' or 'file_': <asset-prefix>"}
ChatGPT conversation image download request failed
fileId=<asset-prefix>#file_<redacted>#p_0.<redacted>.jpg
Image asset download failed
assetPointer=sediment://<asset-prefix>#file_<redacted>#p_0.<redacted>.jpg
pointerScheme=sediment
resolverKind=custom
The conversation refetch subsequently completes successfully (statusAfter=idle), and the retrieved final assistant answer is text/formulas with file citations. The failed resource's purpose is not established.
What steps can reproduce the bug?
Observed sequence in the affected conversation (not yet reproduced with a fresh test document):
- In a ChatGPT project containing uploaded PPTX course material, ask a question requiring reference to that material.
- Open the completed conversation in the desktop app.
- Observe the large blank rounded rectangle above the final text answer.
- Open the same conversation on chatgpt.com: no corresponding image/rectangle appears.
- Reopen/restart the desktop app: the rectangle persists and the same 422 image-download error recurs.
What is the expected behavior?
Desktop should render the appropriate conversation content consistently with the web client. If this is a document-processing intermediate image, it should not appear as an unexplained empty block in the final answer. If it is intended to be user-visible, the composite asset reference should resolve correctly, and a failed load should not leave an indefinite blank placeholder.
Additional information
The logs suggest the composite sediment:// reference is being passed to a file-download route that expects a standard file ID. This is a suspected asset-resolution incompatibility, not a source-code-confirmed root cause. Whether the resource is an intermediate document-page image accidentally exposed by desktop is also unconfirmed.
Related: #34801 and #26187. This report differs from the estuary authorization failure in #34801: the observed error here is HTTP 422 Invalid file_id at the initial file-download request.
Private conversation IDs, file IDs, document contents, and unrelated log entries have been omitted.
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 with the desktop logs around /files/download/{file_id}, the sediment:// asset pointer, and the custom resolver, then follow the reproduction steps for the affected conversation. Confirm whether the composite reference is sent to the file-download route and whether the blank block is intended content. Done means the desktop conversation matches the web client without an unexplained blank placeholder or recurring 422 failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100