App becomes unresponsive with no error UI when config.toml has duplicate [mcp_servers.*] blocks
What version of the Codex App are you using (From “About Codex” dialog)?
26.303.1606 (806)
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Darwin 25.3.0 arm64 arm
What issue are you seeing?
When ~/.codex/config.toml contains duplicate TOML tables (duplicate keys/sections), the Codex app becomes unresponsive and chat cannot be sent. There is no user-facing error message indicating a TOML parse failure.
Removing the duplicated table and restarting the app immediately fixes the issue.
This looks like a TOML parse error that is not surfaced in the UI, causing the app to fail silently instead of failing gracefully.
What steps can reproduce the bug?
- Open
~/.codex/config.toml - Duplicate the same table twice, e.g. define
[mcp_servers.figma]in two places in the file - Save the file
- Fully quit and relaunch the Codex app
- Try to start a new chat or send a message
Result: app becomes unresponsive / chat cannot be sent.
Workaround: remove the duplicate table, restart app -> works again.
--------------------
~/.codex/config.toml (minimal repro)
model = "gpt-5.3-codex"
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
enabled = true
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
Duplicate table (causes freeze)
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
enabled = true
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
--------------------
“No tokens included; this is a minimal repro snippet.”
What is the expected behavior?
The app should detect TOML parse errors (including duplicate keys/tables) and show a clear UI error with:
- file path
- the duplicated key/table name
- line number(s)
The app should not freeze or fail silently; it should allow recovery.
Additional information
This duplicate block likely happened when adding/editing MCP servers via UI, which may append a new block instead of updating an existing one.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗