openai / openai/codex

[macOS Desktop] Codex internal web server status page HTML leaks into chat conversation as raw text

Open
#38,726 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app app-server bug
Dominant language
Rust
Stars
125k
Forks
19.5k
PR merge metrics
PR metrics pending

Description

Summary

After a recent ChatGPT Desktop update, Codex's internal web server status/idle page — the HTML page that Codex's local HTTP server normally renders at its status endpoint — leaks verbatim into the chat conversation as raw HTML text. The agent message area displays the full <html><head>... source instead of any actual task output.

Steps to Reproduce

  1. Open ChatGPT Desktop (latest version, macOS arm64)
  2. Assign Codex a task (e.g., file a GitHub issue)
  3. Wait for the task to run — at some point during or after execution, a large raw HTML blob appears as a chat message

Observed Behavior

A raw HTML blob appears as a chat bubble, beginning with:

<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" />
<style global>body{font-family:Arial,Helvetica,sans-serif}.container{align-items:center;
display:flex;flex-direction:column;gap:2rem;height:100%;justify-content:center;width:100%}
@keyframes enlarge-appear{0%{opacity:0;transform:scale(75%) rotate(-90deg)}to{opacity:1;
transform:scale(100%) rotate(0deg)}}.logo{color:#8e8ea0}.scale-appear{animation:enlarge-appear
.4s ease-out}...
<meta http-equiv="refresh" content="360">

This is followed by the full Codex OpenAI logo SVG path data (M37.5324 16.8707...), clearly the idle/polling status page Codex serves at its local web endpoint.

Expected Behavior

This internal HTML page should never appear in the chat conversation. The Codex local server status page is an internal UI artifact and should be filtered/suppressed before being passed to the conversation message stream.

Environment

  • Platform: macOS (arm64)
  • ChatGPT Desktop version: Post recent update (August 2026)
  • Codex binary: /Applications/ChatGPT.app/Contents/Resources/codex (Mach-O 64-bit arm64)

Root Cause Hypothesis

The Codex binary bundles an internal HTTP server that serves a status/idle page (with <meta http-equiv="refresh" content="360"> for polling). This page appears to be fetched or polled internally by the ChatGPT Desktop IPC layer. After a recent update, the raw HTML response from this internal endpoint is being forwarded into the conversation message stream without sanitization, causing it to render as raw text.

Related: #37913 (similar raw-content-leaking issue on iOS/Remote).

Notes

This bug was introduced with a recent ChatGPT Desktop update. The behavior was not present before the update.

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 raw HTML message on macOS using the Codex binary at /Applications/ChatGPT.app/Contents/Resources/codex, then trace the internal HTTP server and ChatGPT Desktop IPC path described in the report. Done means the status page remains internal and no HTML or SVG source reaches the conversation message stream; no source file or test is named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
backend, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.