openai / openai/codex

Windows Codex Desktop: recurring invalid transport in mcp_servers.codex_app despite plugin disabled

Open
#46,598 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app app-server bug mcp skills windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Description

Codex Desktop for Windows repeatedly fails to start new chats with:

failed to load configuration: invalid transport in mcp_servers.codex_app

The issue persists after updating the Windows app, clearing Codex caches, restarting, and disabling the codex-app-tools plugin in config.toml.

I initially suspected the VS Code Codex extension, but I reproduced the problem with VS Code completely closed.

Environment

  • OS: Windows 11 x64
  • Codex / ChatGPT Desktop
  • Installed AppX package observed: OpenAI.Codex_26.915.4065.0_x64__2p2nqsd0c76g0
  • Previous About versions tested:
    • 26.915.31029
    • 26.915.31945
  • Native Windows mode
  • WSL mode disabled: runCodexInWindowsSubsystemForLinux = false

Actual behavior

When starting a new thread, Codex Desktop fails with:

failed to load configuration: invalid transport in 'mcp_servers.codex_app'

The desktop log records:

  • thread/start
  • error code -32600
  • failureReason=invalid_config
  • thread_start_failed
  • [Composer] submit failed

Important finding

My user config explicitly disables the bundled Codex app tools plugin:

[plugins."codex-app-tools@openai-bundled"]
enabled = false

However, while Codex Desktop is running, the spawned codex.exe process is launched with:

-c plugins.codex-app-tools@openai-bundled.mcp_servers.codex_app.enabled=true

So the Windows desktop application appears to override the user's disabled setting and force-enable codex_app.

Example process command line:

C:\Users\<USER>\AppData\Local\OpenAI\Codex\bin\<BUILD>\codex.exe
-c features.code_mode_host=true
app-server
--analytics-default-enabled
-c plugins.codex-app-tools@openai-bundled.mcp_servers.codex_app.enabled=true

Desktop log

At thread creation:

Request failed
error={"code":-32600,
"message":"failed to load configuration: invalid transport\nin `mcp_servers.codex_app`\n"}
failureReason=invalid_config
method=thread/start

Immediately afterwards:

VM lifecycle ... thread_start_failed
Error creating local task: failed to load configuration: invalid transport in `mcp_servers.codex_app`
[Composer] submit failed: failed to load configuration: invalid transport in `mcp_servers.codex_app`

Additional log clue

The desktop log also reports:

ignoring invalid experimental feature enablement keys:
apps_mcp_path_override,
local_thread_store_compression

target:
codex_app_server::request_processors::config_processor

This may be related to how the Desktop application is constructing/injecting the MCP configuration.

Bundled MCP definition

The bundled file:

.codex\.tmp\bundled-marketplaces\openai-bundled\plugins\codex-app-tools\.mcp.json

contains a command-based codex_app definition using:

"command": "cmd.exe",
"cwd": ".",
"enabled": false

There is no explicit transport property in this source file.

A generated cached copy is also created under:

.codex\plugins\cache\openai-bundled\codex-app-tools\0.1.4\.mcp.json

The generated copy differs from the bundled source, including resolving cwd to the plugin cache directory and adding "env": {}.

Steps to reproduce

  1. Install/open Codex Desktop for Windows.
  2. Ensure native Windows mode is enabled, not WSL.
  3. Set:
    [plugins."codex-app-tools@openai-bundled"]
    enabled = false
    
  4. Completely close VS Code.
  5. Start Codex Desktop.
  6. Inspect the spawned codex.exe command line.
  7. Observe that Desktop still adds:
    -c plugins.codex-app-tools@openai-bundled.mcp_servers.codex_app.enabled=true
  8. Start a new chat/thread.
  9. Thread creation intermittently/repeatedly fails with:
    invalid transport in mcp_servers.codex_app

Expected behavior

If codex-app-tools is disabled in the user's configuration, Codex Desktop should not forcibly enable its codex_app MCP server.

Alternatively, if Desktop requires codex_app, it should inject a complete valid MCP transport configuration.

Troubleshooting already performed

  • Restarted Codex Desktop
  • Restarted Codex backend processes
  • Closed VS Code completely
  • Reproduced with VS Code not running
  • Updated Codex Desktop
  • Disabled codex-app-tools in config.toml
  • Renamed/cleared:
    • .codex\plugins\cache\openai-bundled\codex-app-tools
    • .codex\cache\codex_apps_tools
  • Allowed Codex to regenerate caches
  • Verified no [mcp_servers.codex_app] exists in user config.toml
  • Verified Desktop itself launches codex.exe with the force-enable override

The problem returns.

Impact

This makes Codex Desktop unreliable because new chats/tasks can fail completely and the composer becomes unusable.

The web version and other Codex interfaces are not affected in the same way.

Suspected cause

The Windows Desktop application appears to inject:

plugins.codex-app-tools@openai-bundled.mcp_servers.codex_app.enabled=true

without ensuring that the corresponding generated mcp_servers.codex_app configuration contains a transport recognized by the current Codex backend.

There may also be a version mismatch between the Desktop application's MCP-generation logic and the bundled Codex CLI/runtime.

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

Reproduce the failure in Codex Desktop for Windows, inspect the spawned codex.exe command line, and start with codex_app_server::request_processors::config_processor. Compare the bundled .mcp.json with the generated cached copy and the injected plugin setting. Done means disabling codex-app-tools no longer forces the invalid server, or the injected configuration uses a valid transport.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.