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.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗