Windows app: pasted clipboard images spin forever in history after Temp files are deleted

Open 💬 1 comment Opened Jul 13, 2026 by 74726

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

26.707.8168.0

What subscription do you have?

Paid ChatGPT subscription (exact tier not included in this report).

What platform is your computer?

Microsoft Windows NT 10.0.26200.8655 x64 (Windows 11 25H2)

What issue are you seeing?

Images pasted from the Windows clipboard are processed successfully when the message is sent, but older images in the same Codex Desktop thread later display an infinite loading spinner.

A local inspection of the affected rollout JSONL shows two representations of each pasted image:

  1. The response_item message contains an embedded input_image with a complete data:image/png;base64,... URL.
  2. The corresponding event_msg.user_message contains only a local_images entry pointing to:

C:\Users\<user>\AppData\Local\Temp\codex-clipboard-<uuid>.png

In the affected thread:

  • 17 unique clipboard images were sent.
  • All 17 have embedded data:image content in the rollout JSONL.
  • 16 of the 17 referenced codex-clipboard-*.png Temp files no longer exist.
  • The only image whose Temp file still exists is the newest image.
  • The missing historical images show an infinite spinner in the UI.
  • The model successfully processed the images at send time, so this is not an upload or inference failure.

This strongly suggests that the history renderer uses event_msg.payload.local_images paths and does not fall back to the already persisted embedded image data when the temporary clipboard files have been cleaned up.

No API gateway, account, or inference error is involved.

What steps can reproduce the bug?

  1. Open the Codex Windows desktop app.
  2. Paste a screenshot from the clipboard into a thread.
  3. Send the message and confirm that Codex can process the image.
  4. Repeat with several screenshots.
  5. Restart Codex and/or allow the Windows Temp directory to be cleaned.
  6. Reopen the thread and scroll to the older pasted screenshots.
  7. Observe that the image placeholders spin indefinitely when their codex-clipboard-*.png files no longer exist.

Diagnostic confirmation:

  • Inspect the rollout JSONL under ~/.codex/sessions/.
  • The message has embedded input_image Base64 data, but the UI-facing event retains a path under %LOCALAPPDATA%\Temp.
  • Delete or lose that Temp file, then reopen the thread.

What is the expected behavior?

Pasted image attachments should remain visible in thread history after restarting the app or after Windows cleans the Temp directory.

The app should either:

  • copy clipboard images to durable app storage before persisting the message,
  • render from the embedded image data already stored in the rollout, or
  • show a clear missing-attachment error instead of an infinite spinner.

Additional information

The image data appears recoverable from the rollout JSONL, so the underlying content has not been lost. The failure is in attachment persistence/history rendering.

The affected paths and thread identifiers have been redacted. A screenshot of the spinner and additional redacted diagnostics can be provided if needed.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗