openai / openai/codex

TUI: 'Failed to save approvals reviewer: config/batchWrite failed' on every Full Access startup despite fully persisted config (0.147.0, Windows)

Open
#38,895 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI config TUI windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

On codex-cli 0.147.0 on Windows 11 (npm install), every startup in Full Access shows this error immediately after Permissions updated to Full Access:

Failed to save approvals reviewer: config/batchWrite failed

The session still clearly starts in Full Access / YOLO mode, so the profile config is loading. This looks like a redundant startup persistence attempt that fails noisily even though the setting is already persisted.

Forensics
  • ~\.codex\config.toml already contains approvals_reviewer = "user", approval_policy = "never", and sandbox_mode = "danger-full-access".
  • ~\.codex\automation.config.toml contains the same persisted values.
  • ACLs were checked and normalized: owner has FullControl, there are no Deny ACEs, and directory inheritance is clean.
  • Global state JSON is valid.
  • There are no leftover .tmp or .lock files.
  • The error persists across startups.

Related issues:

  • #26077: batchWrite hides the underlying write error.
  • #36647: the Full Access path appears to write approvals_reviewer unconditionally.
Request

Please make the startup write conditional, skipping it when approvals_reviewer is already persisted, and/or surface the underlying write error instead of only reporting config/batchWrite failed.

No secrets are included here; paths are limited to ~\.codex.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the Full Access startup path and inspect the config/batchWrite handling for approvals_reviewer. Compare the persisted config values with the unconditional write described in related issue #36647, and use #26077 to trace the hidden write failure. Done means the redundant write is skipped when already persisted and/or the underlying error is surfaced.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.