Codex app stores pasted image file paths instead of copying bytes, causing temporary clipboard images to fail on send
Summary
When multiple screenshots are pasted into the Codex desktop app composer from an app that exposes clipboard images as temporary file URLs, Codex shows thumbnails for all pasted images, but only the latest image is available at send time. Earlier attachments fail because Codex appears to keep references to the original temporary paths instead of eagerly copying the image bytes or files into a Codex-owned pending upload cache.
Reproduction
On macOS, use MacShot 4.1.2 with capture mode set to Save + copy to clipboard. Configure MacShot to also save screenshots to a stable folder such as ~/Pictures/screenshot. Take several screenshots in sequence. After each screenshot, paste it into the same Codex desktop app composer. Send the message after multiple images are visible as thumbnails in the composer.
Actual behavior
Codex shows thumbnails for the pasted images before sending, but earlier images fail after send with an error like:
Codex could not read the local image at `~/Library/Containers/com.sw33tlie.macshot.macshot/Data/tmp/macshot-clipboard/Screenshot 2026-07-09 at 00-41-37.png`: No such file or directory (os error 2)
Only the latest screenshot succeeds, because the macshot-clipboard temporary directory contains only the most recent image. In local testing, the stable save folder still contains all screenshots, while the temporary clipboard folder contains only the latest one.
Expected behavior
When an image is pasted or dropped into the composer, Codex should immediately copy the image bytes, or copy the referenced file, into a Codex-owned pending upload cache. The thumbnail displayed in the composer should correspond to a stable pending attachment, not to a volatile source path that may be deleted or replaced before the user clicks send.
Why this matters
The UI suggests that all pasted images are attached successfully because thumbnails are shown, but the attachments are not actually stable. This makes multi-image screenshot workflows unreliable, especially with screenshot tools that use temporary clipboard file URLs.
Environment
Surface: Codex desktop app. OS: macOS. Screenshot app used to reproduce: MacShot 4.1.2. MacShot stable save folder contains all screenshots, but Codex reads from the temporary macshot-clipboard path at send time.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗