Android Remote reconnect removes Notion/codex_apps tools from resumed chat; full Codex restart restores them

Open 💬 3 comments Opened Jul 25, 2026 by atlamors
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using?

Codex App 26.715.8383.0 when the instrumented reproduction occurred.

The installed Microsoft Store package has since updated to 26.721.4979.0. The captured evidence below is from the running 26.715.8383.0 process.

Bundled WSL Codex CLI observed during follow-up diagnostics: 0.146.0-alpha.3.1.

What subscription do you have?

ChatGPT Pro

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64
Codex Desktop using its WSL app-server runtime

Remote controller:

ChatGPT for Android
Android device, OS version, and ChatGPT build were not captured.

What issue are you seeing?

The Notion connector works normally in a Codex Desktop chat and through the same chat using Android Remote. After the Android Remote connection drops and reconnects, Notion disappears from the resumed chat's tool catalog.

The affected chat also lacks Notion when reopened on Desktop. Fully quitting and restarting Codex Desktop restores Notion without reauthorizing the connector.

This appears to be a Remote thread/configuration hydration problem rather than a Notion authentication failure.

During an instrumented reproduction:

  • Before disconnect, Notion was available and mcp__codex_apps__notion_fetch completed successfully.
  • The original chat catalog contained 4 MCP servers and 151 tools.
  • After Remote reconnected, the host plugin catalog successfully recovered to 4 MCP servers and 154 tools.
  • The resumed execution context repeatedly contained only 2 MCP servers and 5 tools.
  • Directly invoking the previously available Notion function failed because the function was no longer registered.
  • Tool search returned no Notion tools.
  • Repeated catalog rebuilds did not restore the connector.
  • Fully restarting Codex restored Notion using the existing authorization.

Observed error:

TypeError: tools.mcp__codex_apps__notion_fetch is not a function

Tool-discovery result after reconnection:

Notion tools: []
MCP server count: 2
Available tool count: 5

The logs also contain Remote WebSocket disconnects where the connection cycle ends while the reported status is still Connected. This suggests a stale Remote transport/session state may be the trigger.

No Notion OAuth prompt appears after restarting Codex, and no reauthorization is required.

What steps can reproduce the bug?

  1. Start Codex Desktop on Windows.
  2. Ensure the Notion connector is authorized.
  3. Open a desktop chat and successfully use a Notion tool.
  4. Open the same host and chat through ChatGPT Remote on Android.
  5. Continue using the chat remotely.
  6. Cause or wait for the Android Remote connection to close, for example by backgrounding ChatGPT or transitioning networks.
  7. Reconnect to the host and continue the chat.
  8. Request another Notion operation.
  9. Observe that Notion is absent from tool discovery and cannot be called.
  10. Open the affected chat on Codex Desktop.
  11. Observe that Notion remains unavailable there.
  12. Fully quit and restart Codex Desktop.
  13. Reopen the chat and observe that Notion is available again without reauthorization.

The connection-loss trigger is intermittent, but once the connector disappears, reconnecting Android alone does not restore it.

Relevant session IDs:

Original chat context: 019f9731-486b-7313-b5d2-53310d4fb716
Reduced-catalog context: 019f9779-75aa-7d03-8562-4025c89a6b1a

Relevant UTC timeline:

2026-07-25 03:26:18 - Remote connection closed (connection ID 11)
2026-07-25 04:06:12 - New Remote initialize (connection ID 12)
2026-07-25 04:06:16 - Remote plugin/list request
2026-07-25 04:06:17 - Host reports 4 MCP servers and 154 tools
2026-07-25 04:18:19 onward - Resumed context repeatedly reports 2 MCP servers and 5 tools

What is the expected behavior?

A Remote disconnect or reconnect must not remove host-provided connectors from a chat.

After reconnection:

  • The resumed chat should retain or reconstruct its Notion/codex_apps binding.
  • Notion should remain available from both Android Remote and Codex Desktop.
  • Codex should not accept a new turn until the host connector catalog is hydrated.
  • A failed refresh should preserve the last known-good connector catalog.
  • Recovery should not require restarting the entire Codex application.

This is also consistent with the documented Remote behavior: the connected host supplies the session's credentials, plugins, MCP servers, and tools.

Additional information

Likely failure boundary:

Android Remote connection closes
    -> Remote reconnects and initializes successfully
    -> Host plugin catalog becomes healthy
    -> Resumed chat retains/reconstructs only its base MCP configuration
    -> codex_apps/Notion binding is missing
    -> Full Codex restart rebuilds the chat/tool runtime and restores Notion

The evidence rules against Notion OAuth revocation:

  • Notion worked immediately before the Remote disconnect.
  • Authorization persisted.
  • No authentication error was returned.
  • Restarting Codex restored the connector without authorization.

Possible corrective actions:

  1. Preserve app bindings during Remote transport teardown.
  2. On Remote reconnect or thread/resume, force-refresh installed apps before accepting a turn.
  3. Reconcile the hosted codex_apps MCP server into the resumed thread.
  4. Rebuild deferred tool-search indexes after reconciliation.
  5. Reject or retry catalog regressions such as 151 tools becoming 5.
  6. Provide a supported "Reload connectors" action so users do not need a full restart.
  7. Add a regression test covering Desktop + Android Remote + Notion across disconnect/reconnect.

Related but not duplicate reports:

  • #24179: Remote Control goes offline while desktop WebSocket remains active
  • #24024: Remote Control becomes stale after idle/network changes
  • #21995: codex_apps connectors fail to initialize in scheduled automation

No credentials, Notion workspace identifiers, prompts, or document contents are included in this report.

View original on GitHub ↗

3 Comments

github-actions[bot] contributor · 1 month ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #34719
  • #34526

Powered by Codex Action

quiezent · 1 month ago

Additional controlled reproduction: later-created task lacks an already-authorized codex_apps connector

This appears to be the same missing per-task codex_apps binding / tool-catalog hydration failure, but I did not isolate an Android Remote reconnect as the trigger.

Environment
  • Windows 11 x64
  • Codex Desktop: 26.721.4979.0
  • Same machine and signed-in account
  • Connector: OpenAI-curated Interactive Brokers (IBKR)
  • Plugin URI: plugin://app-69bc11db874881918718abaca20b68ce@openai-curated-remote
Working control task
  • Created: 2026-07-14T14:26:40.293Z
  • Runtime: codex-cli 0.144.0-alpha.4
  • Targeted tool discovery exposes 27 tools under:

mcp__codex_apps__interactive_brokers__ibkr__*

  • Five read-only calls (account summary, balances, positions, live orders, performance) completed with isError=false.
Affected task
  • Created later: 2026-07-27T10:04:17.953Z
  • Runtime: codex-cli 0.146.0-alpha.3.1
  • The connector was already installed and authorized before this task was created.
  • The user explicitly mentioned the exact plugin link in the affected task.
  • The IBKR tools still were not mounted/discoverable.
  • Calling the exact known account-summary function produced the equivalent of:

TypeError: tools.<exact codex_apps function> is not a function

  • No OAuth/authentication error or prompt occurred; failure was before any connector request.

This creation order rules out “the affected task predates plugin installation” as an explanation. It also conflicts with the documented expectation that installed plugins can add connector/MCP tools to new chats. An explicit plugin mention did not repair or rehydrate the task.

Interpretation

The working host/account authorization is healthy, while the affected task lacks the connector binding or deferred-tool index. This looks like a per-task catalog hydration/provisioning defect, not IBKR authentication failure.

This extends the failure mode in this issue:

  • #35298: connector disappears after Remote reconnect.
  • This reproduction: a later-created task never receives the already-authorized connector, even after an explicit plugin mention.
  • Related dynamic-tool inconsistency: #29128.
  • Related advertised-handler failures: #28080.
Expected behavior

For an eligible task, an installed and authorized connector should be reconciled into the task’s codex_apps MCP/tool catalog at thread creation/resume and after an explicit plugin mention. Otherwise Codex should return a structured eligibility/provisioning reason rather than silently omit the tools.

A supported Reload connectors action plus a check that host catalog → task catalog hydration completed before accepting the turn would make this recoverable.

No credentials, account identifier, portfolio values, or private prompts are included. Read-only connector validation only; broker mutations: zero.

alasano · 26 days ago

+1 on this issue

I have an automation that uses Gmail and Google Calendar and if I talk to the agent from the remote app on Android, it loses access to all tools until the Codex desktop app is fully restarted.