Codex Desktop codex_apps MCP handshake times out while direct wham/apps calls succeed
Codex Desktop codex_apps MCP handshake times out, while direct wham/apps calls with the same token succeed
Summary
Codex Desktop cannot invoke Gmail/GitHub connector tools through the built-in mcp__codex_apps__... tool path. Every connector call fails immediately with:
tool call error: failed to get client
Caused by:
MCP startup failed: timed out handshaking with MCP server after 30s
This appears to be a Codex Desktop codex_apps MCP client/handshake issue, not a connector authorization issue. Using the same Codex ChatGPT auth token, direct JSON-RPC calls to https://chatgpt.com/backend-api/wham/apps succeed.
Environment
- OS: macOS 26.5, build 25F71
- Codex Desktop app bundle version:
26.519.81530 - Codex app version seen in logs:
0.133.0 - Model in affected Codex turns:
gpt-5.5 - Reasoning effort in affected Codex turns:
high - Auth mode: ChatGPT
- Affected connectors:
- Gmail:
connector_2128aebfecb84f64a069897515042a44 - GitHub:
connector_76869538009648d5b282a4bb21c3d157 - Plugins enabled in
~/.codex/config.toml: gmail@openai-curatedgithub@openai-curated- Reinstalling the latest Codex Desktop did not fix the issue.
- Recreating/rebuilding
~/.codexstate did not fix the issue.
Reproduction
- Install/login to Codex Desktop with ChatGPT auth.
- Enable/install Gmail and GitHub connectors.
- Authorize the connectors successfully through the browser flow.
- Start a Codex Desktop thread.
- Ask Codex to call a read-only connector tool, for example:
- Gmail
get_profile - GitHub
list_user_orgs
Actual Behavior
Both connector calls fail through Codex Desktop's built-in tool path:
tool call error: failed to get client
Caused by:
MCP startup failed: timed out handshaking with MCP server after 30s
Log excerpt:
tool_name=mcp__codex_apps__gmail_get_profile
success=false
output=Wall time: 0.0051 seconds
Output:
[{"type":"text","text":"tool call error: failed to get client\n\nCaused by:\n MCP startup failed: timed out handshaking with MCP server after 30s"}]
mcp_server=codex_apps
mcp_server_origin=https://chatgpt.com
app.version=0.133.0
auth_mode="Chatgpt"
originator=Codex_Desktop
model=gpt-5.5
slug=gpt-5.5
Expected Behavior
Codex Desktop should initialize the codex_apps MCP server and invoke Gmail/GitHub connector tools successfully.
Evidence That Connector Auth And Backend Work
Using the same Codex auth token from the local Codex session, direct requests to the remote MCP endpoint succeed.
Endpoint:
POST https://chatgpt.com/backend-api/wham/apps
Results:
initialize: HTTP 200
serverInfo.name: codex-connectors-mcp
serverInfo.version: 0.1.0
tools/list: HTTP 200
tool_count: 111
first_tool.name: github_add_comment_to_issue
tools/call gmail_get_profile: HTTP 200
isError: false
returns the Gmail profile for the connected account
tools/call github_list_user_orgs: HTTP 200
isError: false
returns {"orgs": []}
This suggests:
- The
wham/appsbackend is reachable. - The Codex ChatGPT auth token is valid.
- The token has connector scopes.
- Gmail and GitHub connector links exist and can be invoked.
- The failure is specific to Codex Desktop's built-in
codex_appsMCP client/handshake path.
Additional Local State
The plugin app manifests point to the expected connector IDs:
{
"apps": {
"github": {
"id": "connector_76869538009648d5b282a4bb21c3d157"
}
}
}
{
"apps": {
"gmail": {
"id": "connector_2128aebfecb84f64a069897515042a44"
}
}
}
The local codex_apps_tools cache contains 111 tools, including 90 GitHub tools and 21 Gmail tools, matching the successful direct tools/list result.
Related Issues
This looks similar to:
- #16550
- #20167
- #21995
- #16360
The closest match appears to be #16550: the endpoint is directly reachable and usable, but Codex's RMCP streamable HTTP handshake path fails.
4 Comments
Adding another reproduction from Codex Desktop with a newer build. This looks like the same
codex_appsMCP client failure mode, but in my case a full Codex Desktop restart restored the same connectors without any connector re-auth.Environment:
26.527.60818codex doctor --json:0.136.0-alpha.226.3.0, arm64Failure symptoms before restart:
_get_profileandlist_labelsfailed._whoamifailed with the same error.Error returned by both connectors:
Relevant local log pattern from
~/.codex/logs_2.sqliteon 2026-06-02 Asia/Shanghai:Additional checks while broken:
curl -I -L --max-time 10 https://chatgpt.com/backend-api/wham/appsreturnedHTTP/2 405withAllow: POST, so basic endpoint reachability existed.codex_appscall failed at MCP client acquisition/startup.After restarting Codex Desktop:
codex doctor --jsonafter restart showed ChatGPT provider reachability and WebSocket reachability OK. It had an unrelated optional warning foropenaiDeveloperDocs: https://developers.openai.com/mcptiming out, butcodex_appscalls were healthy after restart.Expected fix:
Codex Desktop should invalidate/recreate/reconnect the broken
codex_appsMCP client/session after handshake/startup failure instead of requiring a full desktop app restart. It would also help if cached app tools were not presented as usable while the underlying MCP client cannot be acquired.Adding another reproduction from Codex Desktop on Windows. This appears to affect
codex_appsMCP app connectors broadly, not only Google Drive.Environment:
OpenAI.Codex_26.601.2237.0_x640.136.0-alpha.2gpt-5.5codex_appsEnabled plugins in
~/.codex/config.toml:gmail@openai-curatedslack@openai-curatedgoogle-drive@openai-curatedgithub@openai-curatedgoogle-calendar@openai-curatedbrowser@openai-bundleddocuments@openai-primary-runtimespreadsheets@openai-primary-runtimepresentations@openai-primary-runtimeAffected connector calls tested:
_get_profile_get_file_metadata_get_profile_get_profile_get_profileAll tested
codex_appsconnector calls fail with:Update: this reproduced again on 2026-06-08 with a newer Codex Desktop build, after my earlier reproduction above.
Environment:
26.602.40724/ build3593codex doctor --json:0.137.0-alpha.426.3build25D125, arm64gpt-5.5codex_appsconnectors tested: Gmail and FigmaMinimal repro during the broken state:
gmail._get_profilefigma._whoamiBoth connectors failed at MCP client startup with the same error:
This again looks like a shared
codex_appsconnector wrapper/session failure rather than a Gmail-specific authorization or query failure, because Gmail and Figma fail together before the actual connector API call can run.Additional diagnostics from the same session:
Expected behavior is still that Codex Desktop should recover/recreate the broken
codex_appsMCP client/session after startup timeout, or surface a connector-runtime-specific recovery action, instead of leaving app connector tools visible but unusable.Adding another reproduction from Codex Desktop on Windows. The same MCP handshake timeout bug still reproduces in CLI 0.145.0 and Windows Store package 26.721.4979.0.
Repro: run
codex mcp login figma(completes successfully, fresh token is written); restart Codex Desktop; call any Figma tool. Tool router returnsunsupported callbecause the tool is never registered.Trace excerpt:
TRACE codex_mcp::connection_manager: MCP server tools unavailable while building tool list server_name=figma has_cached_tools=false startup_complete=false
WARN codex_mcp::rmcp_client: failed to initialize MCP client during shutdown: MCP startup failed: timed out handshaking with MCP server after 30s
ERROR codex_core::tools::router: error=unsupported call: mcp__figma__whoami
Observations:
Hope this helps. This makes the Figma connector unusable from Codex on the affected versions, which is the published recommended integration path for Figma in Codex.