Repository navigation
Codex Desktop 26.707: opening side dialog triggers browser-sidebar rebind loop and React #185 error boundary #32151
Description
What version of the Codex App are you using (From "About Codex" dialog)?
- Codex Desktop / ChatGPT app:
26.707.31428 - Build:
5059 - Bundle ID:
com.openai.codex - Bundled Chromium framework:
150.0.7871.101
What subscription do you have?
ChatGPT subscription with Codex access (exact plan not provided).
What platform is your computer?
- macOS
26.5.1 (25F80) - Apple Silicon, arm64
- UI language: Simplified Chinese
What issue are you seeing?
Clicking the execution-side / side-conversation dialog in a Codex task causes the entire main window to enter the app-wide error fallback.
The visible message is:
糟糕,出错了("Something went wrong")- Buttons:
更新 ChatGPT("Update ChatGPT") and重试("Try again")
No error code or diagnostic details are shown in the UI. The installed app is already current, so the update action does not explain the failure.
The local desktop log identifies an AppRoutes renderer error boundary with:
Minified React error #185
Immediately before the error, the log enters a rapid state-update loop involving:
thread_stream_view_activity_changed: 57 eventsIAB_LIFECYCLE received browser sidebar owner sync: 58 eventsIAB_LIFECYCLE rebound browser sidebar window: 58 events
These events occur within roughly four seconds. The active thread repeatedly toggles between active=true and active=false, while the browser sidebar is rebound to the same owner window.
Sanitized excerpt:
2026-07-10T12:18:45.xxxZ IAB_LIFECYCLE received browser sidebar owner sync browserTabId=null ...
2026-07-10T12:18:45.xxxZ IAB_LIFECYCLE rebound browser sidebar window ownerWebContentsId=1 previousOwnerWebContentsId=1 windowId=1
2026-07-10T12:18:45.xxxZ thread_stream_view_activity_changed active=true ... resumeState=resumed streamRole=owner
2026-07-10T12:18:45.xxxZ thread_stream_view_activity_changed active=false ... resumeState=resumed streamRole=owner
2026-07-10T12:18:46.103Z error ... errorMessage="Minified React error #185" name=AppRoutes
2026-07-10T12:18:46.124Z warning [IpcClient] Received broadcast but no handler is configured method=ipc-connection-reset
No macOS .ips crash report was generated, so this appears to be a renderer/state-update failure rather than a native process crash.
A screenshot was captured at the time of failure. It shows the full-screen fallback and the two buttons above, with no additional diagnostic information.
What steps can reproduce the bug?
- Open Codex Desktop on macOS and enter a local Codex task.
- Click the execution-side / side-conversation dialog or panel.
- Observe the main window.
Observed on July 10, 2026 at 20:18:46 (Asia/Shanghai, UTC+8).
What is the expected behavior?
The side dialog should open and render normally.
If the dialog cannot load, the failure should remain scoped to that panel and provide a useful diagnostic or recovery action. It should not trigger an unbounded sidebar/view-activity update loop or replace the entire app with the generic error boundary.
Additional information
- The component stack includes
local-conversation-thread,quick-chat-window-page, and anasidesubtree before theAppRoutesboundary. - Full raw logs were not attached because they contain task metadata. Sanitized excerpts can be provided if needed.
- Possibly related: Codex Desktop renderer crashes after subagent wait with React #185 and unknown conversation state #31090 also reports a full-screen Codex Desktop fallback with React #185, but its observed trigger is subagent/session-state handling rather than opening the side dialog and entering a browser-sidebar rebind loop.
Activity
github-actions commentedon Jul 10, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
brettw-openai commentedon Jul 13, 2026
This should be fixed in the next release.
constantins2001 commentedon Jul 19, 2026
Independent reproduction on a newer macOS build, with a completed large multi-agent task.
Environment
26.715.31925(build5551)com.openai.codex27.0(build26A5368g), Apple Silicon / arm64Observed trigger
spawn_agentcalls, 542wait_agentcalls, and 356 inter-agent messages.AppRouteserror boundary with React error#185.The transcript itself parses successfully, and the app-server can still read all three completed turns. This does not look like malformed JSONL, native OOM, or a corrupt task.
Immediately before the error, three different conversation identities were competing in one window:
thread_stream_view_activity_changedtoggledactive=true/falsefor the previously active side task.client-new-thread:<uuid>identity.ownerRoutePathpointed to the older task being opened.Sanitized excerpt:
The active/inactive and owner-sync sequence repeated rapidly before the error boundary, matching the loop described in this issue.
Workaround / additional diagnostic
Using the native
thread/forkoperation to make a same-directory copy of the affected task recovered it without modifying the source. The fork contains all original turns and opens successfully in the same worktree. After navigating to the fork, owner sync stabilized on the fork's conversation ID and no React#185or route reset occurred.This suggests the failure is tied to persisted window/sidebar ownership or conversation binding for the original task, rather than its message content alone. Large multi-agent histories may increase the likelihood or timing, but the direct trigger in this reproduction was reopening the task while a side chat remained bound to the window.
Raw task IDs and full logs are intentionally omitted because the task contains security-review material. I can provide targeted sanitized excerpts if maintainers need more detail.
constantins2001 commentedon Jul 19, 2026
Follow-up with a narrower and now repeatable trigger: this appears to be a conflict between the Codex Security MCP workspace/sidebar and an ephemeral side chat, not a generic large-thread failure.
On the recovered parent task, the Codex Security panel cannot be permanently dismissed. When returning from the side chat, the following sequence occurs:
For roughly one second, the side chat repeatedly toggles
active=true/falsewhile owner sync and sidebar rebind repeatedly target the Codex Security parent route. The component stack includes the sharedasidesubtree.Additional observations:
This suggests the fix should address arbitration/disposal for multiple owners of the shared sidebar/aside surface: a completed Codex Security resource should not continuously reclaim focus, and leaving an ephemeral side chat must unregister its view-activity/ownership bindings before the parent MCP resource rehydrates.