openai / openai/codex

[Desktop][Browser] Closing an in-app tab leaves media running

Open
#41,891 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app browser bug
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

Clicking Close on a Codex Desktop in-app browser tab removed it from the visible tab list, but a YouTube video inside it continued playing audio. The hidden tab remained accessible through the “tabs playing audio” control.

Reproduction

  1. Open a YouTube video in the in-app browser.
  2. Start playback.
  3. Click Close on the browser tab.
  4. The tab disappears, but its audio continues.
  5. Open “tabs playing audio”: the supposedly closed tab is still present.
  6. Reopen it, pause, and close again; audio stops.

Observed once; repeatability is not yet confirmed.

Expected

Close should destroy the page and release its renderer, frames, media, timers, network activity, CPU, and memory.

If keeping tabs alive is intentional, it should be explicit/configurable—e.g. Hide / Keep alive—and separate from Close.

Why this matters

The Codex browser is developer-facing tooling. Developers expect visible lifecycle actions to match actual process/resource state. Hidden execution creates invisible behavior, resource usage, and debugging uncertainty.

Evidence

  • In-app browser API reported zero open/controlled tabs.
  • MPRIS still exposed a Chromium media session owned by the main ChatGPT process.
  • Residual metadata: MeshCentral - Assistant, duration 725.721 s, position 665.192 s.
  • playerctl stop changed it to Stopped; PipeWire then showed no ChatGPT audio output.
  • The MPRIS title may identify the parent browser surface, not the embedded YouTube video.

Environment

  • ChatGPT/Codex Desktop 26.820.60940
  • Embedded Chromium 151.0.7922.170
  • Arch Linux 7.1.3-arch1-3, i3/X11
  • PipeWire 1.6.8
  • chatgpt-desktop 26.820.60940-1, repackaged from the official binary
  • Developer mode was not intentionally enabled

Related

Possibly shares lifecycle/cleanup causes with #28352, but this case is distinct: an embedded visible tab is closed while its media session remains alive, rather than leaked headless Playwright workers after a task/session closes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the in-app browser tab-close flow with a playing YouTube video, then trace the close lifecycle and renderer/media cleanup entry points. Verify the fix by checking that the tab disappears from the audio-tabs control, MPRIS reports no remaining session, and PipeWire has no ChatGPT audio output.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
43/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.