Codex App Appshot fails with completed_without_screenshot despite receiving screenshot update on macOS
What happened?
Appshots in the Codex macOS app cannot be attached. The UI shows that the appshot cannot be attached after triggering Appshot from the add-context menu. This reproduces with multiple target apps, including Finder, VS Code, Terminal, and ChatGPT.
The capture pipeline appears to start successfully and receives metadata, axText, screenshot, and completed updates, but the final settlement reports completed_without_screenshot.
Expected behavior
After Appshot capture receives a screenshot update, Codex should attach the app snapshot to the conversation.
Actual behavior
The attachment fails with:
failureReason=completed_without_screenshot
hadAxText=true
hadScreenshot=false
status=failed
Reproduction steps
- Open Codex app on macOS.
- Ensure
Codex Computer Usehas Screen & System Audio Recording and Accessibility permissions. - Ensure Accessibility permission is granted.
- Trigger Appshot from the add-context menu for a foreground application, for example Finder.
- Observe that Codex reports it cannot attach the appshot.
Environment
- Codex app: 26.608.12217
- Codex app build: 3722
- Codex Computer Use: build 809
- macOS: 26.5.1
- Architecture: arm64
- Codex app bundle id:
com.openai.codex - Codex Computer Use bundle id:
com.openai.sky.CUAService
Verification already performed
Codex.appis restored to the official OpenAI signature:
Authority=Developer ID Application: OpenAI OpCo, LLC (2DC432GLL2)
TeamIdentifier=2DC432GLL2
Notarization Ticket=stapled
Codex Computer Use.appis also OpenAI-signed and running.- macOS Screen & System Audio Recording permission is enabled for
Codex Computer Use. - Accessibility permission has been granted.
- Resetting TCC permissions and clearing Computer Use cache did not resolve the issue.
- macOS
screencaptureworks for both full-screen and region screenshots. - The failure reproduces with Finder, not only Electron apps.
Relevant log excerpt
From ~/Library/Logs/com.openai.codex/2026/06/10/codex-desktop-52fe3c04-b318-4194-950f-d1df72cef35a-6734-t0-i1-043015-0.log:
2026-06-10T04:31:28.147Z info [electron-message-handler] Appshot capture request created bundleIdentifier=com.apple.finder name=访达 requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu
2026-06-10T04:31:28.153Z info [electron-message-handler] Appshot capture start request sent bundleIdentifier=com.apple.finder name=访达 requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu
2026-06-10T04:31:28.184Z info [electron-message-handler] Appshot capture start request finished elapsedMs=31 hasResponse=true requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu
2026-06-10T04:31:28.344Z info [electron-message-handler] Appshot capture update received elapsedMs=194 requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu updateType=metadata
2026-06-10T04:31:28.359Z info [electron-message-handler] Appshot capture update received elapsedMs=209 requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu updateType=axText
2026-06-10T04:31:28.383Z info [electron-message-handler] Appshot capture update received elapsedMs=234 requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu updateType=screenshot
2026-06-10T04:31:29.005Z info [electron-message-handler] Appshot capture update received elapsedMs=859 requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu updateType=completed
2026-06-10T04:31:29.006Z info [electron-message-handler] Appshot capture settled elapsedMs=859 failureReason=completed_without_screenshot hadAxText=true hadScreenshot=false requestId=e4819d27-2b45-4dc7-9b18-3d9111128eac source=add_context_menu status=failed
Notes
I attempted a local diagnostic patch and confirmed that modifying/re-signing the app invalidates the Apple Event trust path (Sender process is not authenticated), so this should be handled in the official signed build rather than as a local patch.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗