openai / openai/codex

[Codex App][macOS] ChatGPT pub/sub gets Cloudflare challenge during @Figma task, reconnects, and loses artifact delivery

Open
#40,214 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

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

26.818.41705 (CFBundleVersion 6971)

Bundled app-server: 0.149.0-alpha.4.1

What subscription do you have?

Unknown — the subscription tier is not exposed in the local diagnostics used for this report.

What platform is your computer?
Darwin 24.6.0 arm64 arm
macOS 15.7.9 (24G830)
What issue are you seeing?

During an image-to-SVG task invoked with the official Figma connector (@Figma / figma@openai-curated-remote), Codex App displayed a reconnect state (Reconnecting 1/5) and the workflow failed to deliver the requested local SVG.

The task asked Codex to inspect a local PNG, ignore the slide header/logo, recreate only the architecture diagram as a PPT-compatible SVG using Iconify icons, and keep the “现场数据源” connector strictly horizontal.

The local Codex App logs confirm that this was not only a UI status message. In the affected thread, the ChatGPT pub/sub transport closed and the reconnect attempt received a Cloudflare managed-challenge HTML page instead of the expected service/WebSocket response:

2026-08-23T07:44:49.605Z
chatgpt_pubsub_transport_closed

2026-08-23T07:44:49.605Z
chatgpt_pubsub_reconnect_scheduled
retryCount=0
delayMs=4598.872...

2026-08-23T07:44:54.445Z
sa_server_request_failed
errorMessage="<html> ... Enable JavaScript and cookies to continue ..."

2026-08-23T07:44:54.445Z
chatgpt_pubsub_connection_failed
errorMessage="<html> ... Cloudflare managed challenge ..."

2026-08-23T07:44:54.445Z
chatgpt_pubsub_reconnect_scheduled
retryCount=1
delayMs=9197.744...

2026-08-23T07:45:04.991Z
chatgpt_pubsub_transport_opened

Although the pub/sub transport later reported as opened, the user-visible workflow did not recover into a completed artifact. The intended output directory remained empty.

A later app-process transition also recorded:

[IpcRouter] Socket error
errorCode=EPIPE
errorMessage="write EPIPE"

The key user-facing problem is that the UI does not distinguish whether Reconnecting 1/5 refers to:

  • the model response stream;
  • ChatGPT pub/sub;
  • the Figma connector;
  • connector authentication/discovery;
  • or the local app-server/IPC connection.

Because the task was explicitly invoked with @Figma, the failure appears to the user as “Figma cannot connect,” even though the available evidence points more specifically to the Codex App ChatGPT pub/sub path receiving a Cloudflare challenge. No successful Figma operation result was surfaced.

No raw logs are attached because they contain local paths and Cloudflare challenge tokens. The evidence above is sanitized.

What steps can reproduce the bug?
  1. Open Codex App on macOS.
  2. Open a local project with workspace write permission.
  3. Attach a local PNG image. The reproduced source used a filename containing Chinese characters.
  4. Invoke the official Figma connector with @Figma.
  5. Ask Codex to inspect the image and generate a standalone SVG in the local workspace.
  6. Continue the task for several minutes while local design/tool preparation is running.
  7. Observe Reconnecting 1/5.
  8. Observe that no actionable component-specific error is shown.
  9. After the connection appears to recover, check the intended output directory.
  10. The requested SVG has not been created.

Affected thread/session ID:

01a02d78-f71d-7242-b843-854b7603b4a7

The same thread is present in the desktop log immediately before and after the pub/sub failure.

The original local path has been redacted:

/Users/<redacted>/Downloads/.../ChatGPT Image 2026年8月23日 14_29_57.png
What is the expected behavior?

Codex App should either:

  1. keep the ChatGPT pub/sub/response stream stable and complete the @Figma task; or
  2. recover the in-progress turn after a transient disconnect; or
  3. fail promptly with a component-specific, actionable error.

The reconnect UI should identify the failing layer, for example:

Reconnecting ChatGPT pub/sub (1/5)
Figma connector is not currently being retried

If a Cloudflare challenge HTML page is returned where a service/WebSocket response is expected, Codex App should classify and surface that condition instead of displaying a generic reconnect counter.

Completed local work and the planned output state should survive a reconnect. If the requested output can be produced locally without Figma, the app/agent should be able to continue using that fallback rather than leaving the user with no artifact.

Additional information

Impact:

  • The Figma workflow appears completely unavailable to the user.
  • The reconnect status does not identify the failing component.
  • The task can consume substantial time while producing no artifact.
  • A later “transport opened” event does not guarantee that the interrupted workflow resumes successfully.

Requested improvements:

  • Identify the connection being retried in the UI.
  • Include a copyable failure classification/request ID.
  • Detect Cloudflare challenge HTML returned to pub/sub/service requests.
  • Preserve/resume in-progress turns after pub/sub reconnection.
  • Add a targeted “Retry Figma connector/tool call” action.
  • Do not imply artifact generation is underway until an actual tool call or local write has started.
  • Surface whether the local write operation started and whether it can safely resume.

Related but not duplicate reports found before filing:

  • #32555 — general Codex Desktop WebSocket/Broken pipe behavior.
  • #19070 — Cloudflare challenge on MCP/connectors discovery endpoints.
  • #19158 — Figma plugin unavailable in the plugin UI.

This report adds a current macOS Codex App reproduction with exact app/app-server versions, a single affected thread ID, sanitized pub/sub timestamps, Cloudflare-challenge evidence on the pub/sub reconnection path, and a concrete @Figma task that failed to produce its promised local artifact.

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 at the ChatGPT pub/sub reconnect path and the Reconnecting 1/5 UI state, using the sanitized timestamps and affected thread/session ID as the reproduction trace. Compare the sa_server_request_failed Cloudflare challenge with the later chatgpt_pubsub_transport_opened event; done means the failing component and recovery outcome are surfaced without silently losing the artifact workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
figma, macos
Domain
desktop, devtools, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.