Codex Security sidebar and side chat fight for ownership, causing focus loop and React #185

Open 💬 1 comment Opened Jul 19, 2026 by constantins2001

What version of the Codex App are you using (From "About Codex" dialog)?

Codex Desktop / ChatGPT app 26.715.31925 (build 5551), bundle ID com.openai.codex.

What subscription do you have?

ChatGPT Pro.

What platform is your computer?

  • macOS 27.0 (build 26A5368g)
  • Apple Silicon / arm64

What issue are you seeing?

A completed Codex Security workspace/sidebar and an ephemeral side chat fight for ownership of the same sidebar/aside surface.

The Codex Security tab cannot be permanently closed. Returning from or closing a side chat causes the completed Security workspace to rehydrate through mcpServer/resource/read and reclaim the parent route. At the same time, the side chat repeatedly toggles active/inactive. The focus/ownership loop ends in the app-wide AppRoutes error boundary with:

Minified React error #185

The source task remains healthy at the app-server level: its JSONL is valid and thread/read returns all completed turns. This is a renderer/resource-lifecycle failure, not transcript corruption, native OOM, or an active security scan.

What steps can reproduce the bug?

  1. Open a local task that has launched a Codex Security workspace.
  2. Complete the security scan. The Security workspace remains available in the sidebar.
  3. Open an execution-side/side chat from that task.
  4. Submit work in the side chat.
  5. Leave or close the side chat and return to the parent task.
  6. Try to close or navigate away from the Codex Security tab.
  7. The Security resource reappears/steals focus, while the side chat repeatedly changes view activity.
  8. The main window enters the AppRoutes error boundary with React #185.

This was reproduced again after recovering the source task into a fork.

What is the expected behavior?

  • Closing or leaving a completed Codex Security workspace should dispose its sidebar ownership until explicitly reopened.
  • A side chat and an MCP App resource must not simultaneously own or repeatedly reclaim the shared sidebar.
  • Leaving a side chat should unregister its view-activity and sidebar bindings before the parent resource is rehydrated.
  • If either panel fails, the failure should remain scoped to that panel and not crash the complete task view.
  • Codex Security should expose a reliable close/dispose workspace lifecycle operation.

Additional information

Sanitized timeline from a reproduction:

17:24:38.737 parent task becomes active; sidebar owner sync targets parent
17:24:38.755 ephemeral side chat becomes active
17:24:38.784 mcpServer/resource/read succeeds for the parent task
17:24:38.830 ephemeral side chat becomes inactive
17:24:38.838 parent sidebar owner sync/rebind repeats
... active=true/false and owner-sync/rebind repeat dozens of times ...
17:24:39.757 AppRoutes error boundary: Minified React error #185

The component stack includes the shared aside subtree.

Diagnostics and workarounds:

  • The scan was already complete, so this is not a progress-update race.
  • The exposed Codex Security MCP surface has open/reopen operations but no close/dispose workspace operation.
  • Archiving the ephemeral side chat does not clear already-bound renderer state.
  • Forking the parent preserves the historical Security workspace/tool record and remains susceptible.
  • Creating a clean normal project task with the recovered prompt, without inheriting the Security workspace record, avoids the collision.
  • No macOS native crash report is produced.

Related but distinct: #32151 reports a generic side-dialog/browser-sidebar rebind loop and was said to be fixed in a subsequent release. This report identifies a remaining plugin-specific lifecycle conflict on the newer 26.715.31925 build: a persistent completed Codex Security MCP resource competes with an ephemeral side chat and cannot be disposed.

Supporting reproduction comments on #32151:

Raw task IDs and full logs are intentionally omitted because the affected task contains security-review material. Targeted sanitized excerpts can be provided if maintainers need more detail.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗