[macOS] Bundled plugin installation fails: spawn ditto ENOENT
Summary
Installing a bundled plugin (Chrome) from the Codex desktop app consistently fails with the UI toast “Failed to install plugin.”
The failure occurs while Codex copies the bundled marketplace. The machine has an executable /usr/bin/ditto, so the app appears to be spawning ditto with a PATH that cannot resolve macOS system utilities.
Environment
- macOS
- Codex desktop plugin version:
26.616.71553 - Bundled marketplace source:
/Applications/ChatGPT.app/Contents/Resources/plugins/openai-bundled
Reproduction
- Open Plugins → Chrome in Codex Desktop.
- Click Install plugin.
- Observe the “Failed to install plugin” toast.
Relevant log
2026-07-20T20:46:59.415Z warning [BundledPluginsMarketplace] plugin_marketplace_folder_write_failed errorCode=ENOENT errorMessage="spawn ditto ENOENT" folderWritePhase=copy_plugins marketplaceName=openai-bundled sourceMarketplaceRoot=/Applications/ChatGPT.app/Contents/Resources/plugins/openai-bundled targetMarketplaceRoot=/Users/decimalsols/.codex/.tmp/bundled-marketplaces/openai-bundled
The logs then report bundled_plugins_marketplace_resolve_failed with the same spawn ditto ENOENT error. /usr/bin/ditto exists and is executable on this Mac.
Expected behavior
Codex should copy the bundled marketplace and complete plugin installation. For Chrome, this should also install the native-messaging host needed by the extension.
Actual behavior / impact
Plugin installation never completes, so the Chrome native-messaging host is absent and Chrome control cannot connect.
Related but distinct
This fails before browser bootstrap/tab discovery, so it is distinct from #32954 (Cannot redefine property: process), although that issue may still affect Chrome after installation succeeds.