Skip to content

Windows Desktop mangles Korean USERPROFILE in generated notify/node_repl paths, causing invalid config.toml and setup loop #37740

Description

@LeeJeongHeon02

Summary

On Windows, Codex Desktop generated notify and node_repl paths containing a mojibake/corrupted form of a Korean username from %USERPROFILE%. The generated notify value also used unsafe backslash escaping inside a TOML double-quoted string, making the entire user config.toml unparseable.

The Desktop UI did not show the configuration error. Instead, it became stuck on Complete Windows setup / Windows setup didn't finish. Retry did not open a real UAC prompt, and Continue with limited access did nothing.

Removing only the invalid generated notify line immediately restored both the bundled Codex CLI and Desktop. Later, adding an MCP server reproduced or triggered regeneration of the same invalid notify value. The available evidence does not establish whether the MCP installer wrote it directly or whether a subsequent Desktop/runtime/plugin reconciliation rewrote it.

Environment

  • Windows (registry product name: Windows 10 Education), version 25H2, build 26200.8875, x64
  • Microsoft Store package: OpenAI.Codex 26.803.5235.0
  • Bundled Codex: codex-cli 0.147.0-alpha.6.5
  • USERPROFILE contains Korean/non-ASCII characters: C:\Users\<Korean username>
  • The same Windows account had previously run ChatGPT/Codex Desktop normally; the problem appeared after a recent app update.

Observed behavior

Desktop was blocked by the Windows setup overlay:

  • Retry Windows setup did not produce an actual UAC prompt.
  • Continue with limited access had no observable effect.
  • A Settings deep link only flashed behind the setup overlay.
  • Windows App Repair, Reset, and confirming the latest Store version did not help.
  • Setting [windows] sandbox = "unelevated" did not bypass the setup gate.

Running the bundled executable directly:

%LOCALAPPDATA%\OpenAI\Codex\bin\<hash>\codex.exe

exposed the underlying error:

Error loading config.toml
missing escaped value

The user config contained a Desktop/runtime-managed value shaped like this (username and hashes redacted):

notify = [ "C:\Users\\<mojibake>\AppData\Local\OpenAI\Codex\runtimes\cua_node\<hash>\bin\node_modules\\@oai\sky\bin\windows\codex-computer-use.exe", "turn-ended" ]

The Korean username portion had been stored as mojibake/corrupted characters, and the Windows path was not safely escaped for a TOML double-quoted string. The parser reported:

missing escaped value, expected b, e, f, n, r, \, ", x, u, U

Recovery and before/after evidence

I removed only the invalid generated notify line. I did not delete .codex or reset the complete config.

Before:

invalid generated notify path
-> config.toml parsing failure
-> bundled Codex bootstrap failure
-> Desktop stuck at Windows setup incomplete

After:

remove only invalid notify line
-> bundled Codex starts normally
-> Desktop starts normally

After Desktop had recovered, adding an MCP server via its installer reproduced or triggered the problem. codex mcp list then failed during bootstrap configuration loading with the same invalid generated notify value and TOML parse error. Removing only that line again restored codex mcp list; the newly registered MCP server remained enabled and its OAuth registration remained intact.

This confirms the failure was not resolved permanently by the first manual removal. It does not establish whether the third-party installer or a later Codex-managed reconciliation step regenerated notify.

Related node_repl path corruption

The generated node_repl.command path contained the same USERPROFILE corruption and was shaped like:

C:\Users<mojibake>AppData\Local\OpenAI\Codex\runtimes\cua_node\<hash>\bin\node_repl.exe

The executable actually existed at:

C:\Users\<Korean username>\AppData\Local\OpenAI\Codex\runtimes\cua_node\<hash>\bin\node_repl.exe

Before correcting node_repl.command, bundled Codex reported:

MCP client for node_repl failed to start:
The filename, directory name, or volume label syntax is incorrect. (os error 123)

After setting node_repl.command to the actual Unicode path, codex mcp get node_repl showed the correct path and the os error 123 startup warning disappeared.

Reproduction

  1. Use Windows with a Korean/non-ASCII USERPROFILE such as C:\Users\<Korean username>.
  2. Use ChatGPT/Codex Desktop normally so its Computer Use/node_repl configuration is generated.
  3. Observe that the generated notify path contains a corrupted USERPROFILE and invalid TOML backslash escaping.
  4. Restart/open Desktop and observe the Windows setup didn't finish loop.
  5. Run the bundled Codex executable and observe the config.toml parsing error.
  6. Remove only the invalid generated notify line; bundled Codex and Desktop recover immediately.
  7. Add an MCP server. In this reproduction, doing so reproduced or triggered regeneration of the invalid notify value and the same failure.
  8. Remove the invalid notify line again and correct the generated node_repl.command to the actual Unicode path.
  9. Observe that Codex and Desktop start normally and the node_repl os error 123 warning is gone.

Confirmed facts vs. inference

Confirmed:

  • Desktop-managed/generated config contained Windows paths with a mojibake form of the Korean/non-ASCII USERPROFILE.
  • The generated notify line was invalid TOML and caused a clear parse failure in bundled Codex.
  • Removing only that line immediately restored bundled Codex and Desktop.
  • Adding an MCP server reproduced or triggered regeneration of the same invalid notify line and failure.
  • The generated node_repl.command contained the same USERPROFILE corruption.
  • Correcting node_repl.command to the actual Unicode path removed the os error 123 warning.
  • Desktop surfaced the parse failure as a Windows setup failure rather than showing the configuration error.

Inference:

The evidence suggests that a Desktop-managed runtime/plugin/config reconciliation path may be serializing non-ASCII Windows profile paths incorrectly or writing generated runtime paths to TOML without safe escaping. I have not verified the internal implementation or which component performs the rewrite.

Expected behavior

  1. Desktop-generated Windows paths must preserve Unicode/non-ASCII USERPROFILE values correctly.
  2. Desktop-generated config.toml must always remain valid TOML.
  3. Windows paths written to TOML must use safe escaping, forward slashes, or TOML literal strings where appropriate.
  4. A config.toml parsing failure must not be surfaced only as Windows setup didn't finish.
  5. When config.toml is invalid, Desktop should show the actual config file, line number, and parse error, or start in a recoverable safe mode.
  6. MCP/config/runtime reconciliation must not regenerate invalid notify or node_repl paths.
  7. Korean/CJK/non-ASCII Windows USERPROFILE paths should be covered by regression tests/CI.

Related issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingcomputer-useconfigIssues involving config.toml, config keys, config merging, or config updateswindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions