[Windows desktop] Closing in-app Browser tab silently terminates Codex during WebView teardown
Summary
Codex Desktop terminated silently while closing the last in-app Browser Use tab. The desktop log ends immediately after the Browser WebView/guest teardown sequence, with no graceful shutdown marker, fatal exception, Windows Error Reporting event, or Crashpad/Sentry report.
The only warning at the failure boundary is:
IAB_LIFECYCLE iab rejected tab for route ... tabId=1 tabRouteKey=null
This is strongly correlated with the termination, but the available evidence does not prove that the warning itself is the root cause.
Environment
- Codex package:
OpenAI.Codex_26.715.4045.0_x64__2p2nqsd0c76g0 - Codex version:
26.715.4045.0 - Architecture: x64
- Windows registry-reported edition: Windows 10 Home Single Language
- DisplayVersion:
25H2 - OS build:
26200.8875 - Time zone: UTC+07:00
- Affected task/thread ID:
019f7b35-656b-73b0-b239-cac628bfa0b0
Observed sequence
- A Codex task used Browser Use against a local frontend while a Node/Vite test server was running.
- The focused browser verification completed successfully.
- The Browser Use tab was closed.
- Codex logged route rejection during teardown with
tabRouteKey=null. - The renderer disposed and removed the browser sidebar WebView, and the browser registry closed the page.
- The desktop log ended at
2026-07-19T17:35:58.604Zwith no shutdown or error record. - Windows destroyed the Codex Desktop AppX container at approximately
2026-07-20 00:36:00.171 +07:00. - The task remained interrupted and produced no final assistant response.
Sanitized failure-boundary log
Codex timestamps below are UTC:
2026-07-19T17:35:58.400Z info [browser-use-iab-api]
IAB_LIFECYCLE unregistered debugger listener ... reason=target-close ... tabId=1 webContentsDestroyed=false webContentsId=3
2026-07-19T17:35:58.402Z info [browser-sidebar-manager]
IAB_LIFECYCLE syncing browser use active state ... isActive=false
2026-07-19T17:35:58.406Z warning [browser-use-iab-api]
IAB_LIFECYCLE iab rejected tab for route ... tabId=1 tabRouteKey=null
2026-07-19T17:35:58.412Z info [browser-use-pip]
Received Browser Use PiP metadata ... tabID=undefined
2026-07-19T17:35:58.544Z info [electron-message-handler]
IAB_LIFECYCLE renderer synced browser use webview state ... isBrowserUseActive=false
2026-07-19T17:35:58.548Z info [electron-message-handler]
IAB_LIFECYCLE renderer disposed browser sidebar webview ...
2026-07-19T17:35:58.563Z warning [browser-session-registry]
IAB_LIFECYCLE browser sidebar guest torn down ... guestWebContentsId=3
2026-07-19T17:35:58.602Z info [electron-message-handler]
IAB_LIFECYCLE renderer removed browser sidebar webview ... tabType=closed
2026-07-19T17:35:58.604Z info [browser-session-registry]
IAB_LIFECYCLE closed browser sidebar page ...
2026-07-19T17:35:58.604Z info [browser-sidebar-manager]
IAB_TAB_ANALYTICS browser tab lifecycle action=closed appBrowserTabCount=0 appBrowserUseTabCount=0 ...
<end of desktop log>
Additional diagnostics
- No
render-process-gone, fatal exception, panic, out-of-memory, or graceful shutdown event was logged at the boundary. - No Windows Application Error, Application Hang, .NET Runtime, or WER event was recorded for this occurrence.
- No System-log reboot, shutdown, display reset, hardware error, or resource-exhaustion event was present around the incident.
- Crashpad contained no dump for this occurrence.
- The Sentry queue contained no crash payload.
- The package status was healthy and there was no package update at the incident time.
- The local Node/Vite server processes remained alive and continued listening after Codex disappeared, indicating the test server did not terminate the app.
- The task rollout JSONL ends abruptly at the same boundary and remains marked interrupted.
Expected behavior
Closing a Browser Use tab should cleanly detach and destroy the guest WebContents without terminating Codex Desktop. A route mismatch during teardown should be handled as a recoverable stale-tab condition.
If a renderer or WebView does fail, Codex should:
- keep the desktop main process alive,
- preserve/complete the active task as interrupted with a visible recovery state, and
- emit a diagnostic crash record or recoverable error instead of silently disappearing.
Actual behavior
The entire Codex Desktop app/container terminated immediately after closing the Browser Use tab. There was no crash dialog or actionable diagnostic, and the active task was left interrupted.
Reproduction status
Observed once in this exact form. The temporal correlation is precise, but this report intentionally describes the teardown sequence as the probable trigger rather than claiming a proven faulting module.
Potentially related browser lifecycle reports include #23814, #33514, #33762, and #33827, but those focus mainly on browser creation, navigation, or restoration rather than termination while closing the last Browser Use tab.
Full local logs contain paths and conversation metadata, so only sanitized excerpts are included publicly. Targeted additional evidence can be provided through a private support channel if needed.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Update 2026-07-29 — native dump and concrete orphan-tab trigger
A new occurrence on the current Windows build produced a full Sentry/Crashpad minidump and exposes a more specific teardown path than the original report.
Environment and native signature
OpenAI.Codex_26.721.4979.0_x64__2p2nqsd0c76g026.721.41059150.0.7871.128ChatGPT.exeprocess, not renderer or GPU0xC0000005read access violation0xFFFFFFFFFFFFFFFFchrome.dll+0xEC1491E908bf39d18a64ff58ec81dd7363cb7b82026-07-29 10:53:04 MSK/07:53:04ZThe crashing thread registers contain common freed/uninitialized-memory poison patterns (
RCX=0xEFEFEFEFEFEFEFEF,R11=0xCDCDCDCDCDCDCDCD), consistent with a lifecycle/use-after-free class failure. Private Chromium symbols are not available, so the reliable fingerprint is:Exact Browser Use sequence
The transcript and desktop log agree on this sequence:
qaTab = await browser.tabs.new()whileqaTabwas not declared.2; assignment then failed withqaTab is not defined. This left tab2open without a usable JS handle (an orphan).var qaTab2 = await browser.tabs.new()and successfully created tab3. Tool metadata explicitly reportedopenTabIds:["2","3"].3; orphan tab2remained in the same route/session.await qaTab2.close()completed successfully. Tool metadata then reportedopenTabIds:["2"].browser.tabs.finalize(...)call was made.3, activated the orphan tab2, emitted the sameiab rejected tab for routecondition withtabRouteKey=null, then loggedFailed to upsert Browser Use PiP content.This occurrence therefore did not close the last tab. It closed the active Browser Use webview while another orphaned Browser Use webview remained, forcing an active-tab/route switch during teardown. That distinction may explain why simple one-tab tests did not reproduce the crash.
Reproduction coverage
Earlier controlled one-tab close tests were clean (7/7) on an older build. They did not exercise:
tabs.new()call that leaves a created tab orphaned,Related report #35210 covers a similar whole-app exit through
browser.tabs.finalize(); this occurrence used directTab.close(), so both paths may converge on the same Windows IAB guest teardown/switch lifecycle.Preserved private artifacts
Raw artifacts are intentionally not attached publicly because dumps and complete logs may contain process memory and session data. They are available privately if maintainers request them.
65CFFEDED75BBCD8F4BE1B7232F9C5D815BE748FF6203FC102F54A0F8B58800D0912CABA44AEA44D20E61AD5ACAFC2A4DB8DFA4195BCC4615D942BC5CCA585D7CB3C1AE9E356ADA85509FFD17038D29530577F87041D5C46496812CED6810570The Sentry session marker records
status=crashed,errors=1. The event ID above should allow OpenAI to correlate the full native envelope without exposing it in the public issue.Codex in-app feedback has now also been submitted for this incident.
019f7da5-cf7d-7522-ac78-56307105ceb6908bf39d18a64ff58ec81dd7363cb7b8These identifiers should allow the private feedback/session diagnostics and the native Sentry crash envelope to be correlated with this public issue.
Additional reproduction on 26.727.6591.0 (2026-08-03)
This failure reproduced again on a newer Windows desktop build.
Environment
26.727.6591.0x6419045Sequence
This closely matches the Browser WebView teardown/finalize lifecycle reported here and shows that the issue still occurs on
26.727.6591.0. It also confirms that child processes launched for the active task can remain alive after the desktop app terminates.No raw logs, local paths, thread identifiers, or project contents are included in this public comment.