Desktop Preferences can get stuck showing "unable to save" after configVersionConflict on sequential config writes
What issue are you seeing?
Codex Desktop Preferences can get stuck showing an "unable to save" error when changing settings that write to config.toml, even after restarting the app. The underlying app-server error in the Desktop logs is configVersionConflict from config/value/write.
In the observed case, one Preferences write succeeded and updated config.toml, but follow-up writes from the same UI flow failed because they used a stale config version.
What steps can reproduce the bug?
Observed on Windows with Codex Desktop.
- Open Codex Desktop Preferences.
- Change settings that touch
$CODEX_HOME/config.toml, such as approval/sandbox preferences. - Observe that the app shows "unable to save".
- Inspect
config.tomland Desktop logs.
A successful first write was visible in config.toml; for example, Preferences added:
sandbox_mode = "workspace-write"
Immediately after that, subsequent config/value/write requests failed with configVersionConflict.
Restarting Codex Desktop did not clear the user-visible inability to change those settings.
What is the expected behavior?
Preferences should save the selected config values without surfacing an error.
If multiple config values are written as part of one UI interaction, Desktop should either:
- use
config/batch/write, or - re-read the latest config version and retry when a
configVersionConflictoccurs, or - otherwise serialize writes so later writes use the updated config version from the previous successful write.
What is the actual behavior?
The first config/value/write can succeed, then later writes fail with:
config_write_error_code=configVersionConflict
Configuration was modified since last read. Fetch latest version and retry.
The UI reports "unable to save" even though the config file may have been partially updated.
Logs
From Codex Desktop logs, redacted for local paths:
2026-04-30T22:35:39.668Z info [AppServerConnection] response_routed ... errorCode=null ... method=config/value/write ...
2026-04-30T22:35:39.673Z info [AppServerConnection] response_routed ... errorCode=null ... method=config/read ...
2026-04-30T22:35:41.600Z info [AppServerConnection] response_routed ... errorCode=-32600 ... method=config/value/write ...
2026-04-30T22:35:41.603Z error [electron-message-handler] Request failed ... error={"code":-32600,"data":{"config_write_error_code":"configVersionConflict"},"message":"Configuration was modified since last read. Fetch latest version and retry."} ... method=config/value/write ...
2026-04-30T22:35:43.624Z info [AppServerConnection] response_routed ... errorCode=-32600 ... method=config/value/write ...
2026-04-30T22:35:43.627Z error [electron-message-handler] Request failed ... error={"code":-32600,"data":{"config_write_error_code":"configVersionConflict"},"message":"Configuration was modified since last read. Fetch latest version and retry."} ... method=config/value/write ...
Earlier attempts showed the same failure pattern:
2026-04-30T22:19:42.395Z error [electron-message-handler] Request failed ... error={"code":-32600,"data":{"config_write_error_code":"configVersionConflict"},"message":"Configuration was modified since last read. Fetch latest version and retry."} ... method=config/value/write ...
2026-04-30T22:19:44.159Z error [electron-message-handler] Request failed ... error={"code":-32600,"data":{"config_write_error_code":"configVersionConflict"},"message":"Configuration was modified since last read. Fetch latest version and retry."} ... method=config/value/write ...
Environment
- Codex Desktop on Windows
- App package path showed
OpenAI.Codex_26.429.2026.0_x64__... - Desktop log client version also showed
26.429.20946 $CODEX_HOME/config.tomlparsed successfully as TOML before and after the Preferences write
Additional context
This looks related in shape to openai/codex#15310's proposed fix option of persisting sandbox preference via config/batch/write, but this issue is specifically about Desktop Preferences issuing sequential config/value/write calls and not recovering from configVersionConflict.
Manual edits to config.toml work as a temporary workaround, but Preferences still reports "unable to save" for these settings.
9 Comments
I can confirm this still reproduces after today's Windows Desktop update.
Environment:
OpenAI.Codex_26.429.3425.0_x64__2p2nqsd0c76g026.429.3425.0app/resources/codex.exe:0.128.0-alpha.1app.asartimestamp on disk:2026-05-02T10:36:23+08:00Current user config parses and is read successfully:
Repro after the update:
Unable to save.Log evidence from the same session:
After that marketplace sync,
config.tomlcontains:All later Preferences writes fail with the same version conflict:
Notes:
config.tomlediting remains a workaround, but the Preferences UI cannot save.workspace_dependencies, and the bundled marketplace sync appears to modify config after the initial successfulconfig/read, leaving the Preferences page with a stale config version.Adding a macOS reproduction of the same Preferences/Configuration failure.
Environment:
26.429.30905(CFBundleVersion2345)26.4.1(25E253)/Applications/Codex.appObserved behavior:
Unable to savewhenever changing settings, including Approval policy and Sandbox settings.NeverRead onlyUnable to saveconfig.tomlis writable outside the UI. A Codex agent was able to atomically rewrite it and parse it successfully as TOML.~/.codex/config.tomlalready contains:So the UI appears out of sync with the effective config and is failing to persist changes, rather than hitting a basic filesystem permission issue.
Impact:
config.tomlsaysdanger-full-access.Workaround used locally:
This looks related to the existing stale config version / Preferences save path described here, but this reproduction is on macOS rather than Windows.
same problem.
It has been happening for a few weeks for me and it still is happening. I'm not sure how to proceed with that anymore except manually changing .toml which is fine, but it seems really weird for an app this complex to have issues writing it's own config.
Still happening. Windows and Mac. Fresh installs and existing installs.
Happening for me too on macOS
When I ask Codex, here is its suggestions:
Running it as administrator may solve this problem.
Reproduction notes and proposed fix path
I took a pass at reducing this to an actionable code path before suggesting a fix.
Breakdown:
Proposed approach:
Precedent: #29189 Codex Desktop 26.616.41845 node_repl fails: codex/sandbox-state-meta missing sandboxPolicy
How I shaped this comment from prior successful threads:
This analysis was prepared with AI assistance.
<!-- fkst:codex-saga:engage:codex-triage:dup:openai/codex#20538 -->