PingFangSC-Regular renders as tofu at font-weight 400 on macOS 26.5.2

Open 💬 0 comments Opened Jul 20, 2026 by HyperHe0904

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

26.715.52143 (build 5591)

What subscription do you have?

ChatGPT Pro (20x)

What platform is your computer?

Darwin 25.5.0 arm64 arm

What issue are you seeing?

Chinese characters rendered at CSS font-weight: 400 appear as tofu/question-mark boxes in the Codex macOS app. The same text renders normally at weights 401, 445, and 500, or when a different CJK family such as Songti SC is used.

This affects the home-page heading, some Settings labels, project/branch/model labels, and other Chinese UI text that uses the stock UI font stack at weight 400. Sidebar entries usually remain readable because those elements use weight 445 or 500.

The issue persists after restoring the stock UI font setting and removing all Chromium font preference overrides. It also reproduces with a fresh isolated Chromium user-data directory, so it is not caused by a custom theme or a stale profile.

What steps can reproduce the bug?

Feedback ID: 019f7923-8e93-7163-a5e9-8c71d184d8bf

  1. On macOS 26.5.2, launch Codex App 26.715.52143 with the default UI font stack:

-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif

  1. Display any Chinese text in an element whose computed font-weight is exactly 400 (the home-page heading reproduces it immediately).
  2. Observe that each Chinese character is rendered as a question-mark box.
  3. Change the weight to 401 or higher, or use Songti SC, and the same Chinese text renders correctly.

I inspected the actual platform fonts through the Chrome DevTools Protocol using CSS.getPlatformFontsForNode:

  • Stock system stack or explicit "PingFang SC", weight 400:
  • familyName: ".LastResort"
  • postScriptName: "PingFangSC-Regular"
  • Weight 401/445/500:
  • familyName: "蘋方-簡"
  • postScriptName: "PingFangSC-Medium"
  • "Songti SC", weight 400:
  • familyName: "Songti SC"
  • postScriptName: "STSongti-SC-Regular"

Additional isolation results:

  • Native macOS CoreText reports complete, nonzero glyphs for PingFangSC-Regular.
  • A headed Google Chrome 150.0.7871.125 instance on the same Mac correctly selects PingFangSC-Regular.
  • Codex's embedded framework is 150.0.7871.124 and reproduces the failure.
  • Reproduces with both zh-CN and en-US app language overrides.
  • Explicitly selecting PingFang SC still fails at weight 400, so OpenAI Sans fallback is not required to trigger the bug.

What is the expected behavior?

Chinese characters should render normally at font-weight: 400 using PingFangSC-Regular, matching native CoreText and Google Chrome on the same machine. The rendered output should not fall back to macOS .LastResort.

Additional information

Environment:

  • Codex App: 26.715.52143 (build 5591)
  • Embedded Codex/Chromium Framework: 150.0.7871.124
  • macOS: 26.5.2 (build 25F84)
  • Kernel/platform: Darwin 25.5.0 arm64
  • Hardware: MacBook Pro (Mac16,1), Apple M4
  • The only PingFang family found is the macOS system font asset; no user-installed duplicate was found.

This appears to be a narrow font-matching compatibility regression between the embedded Codex Chromium framework and the macOS PingFangSC-Regular face. Font matching fails before rasterization, so disabling GPU rendering is unlikely to affect it.

Screenshots:

  1. Codex home screen: the heading and several project/model labels render as tofu, while the heavier card labels remain readable.

<img width="1826" height="1222" alt="Codex home screen showing Chinese UI text as tofu boxes" src="https://github.com/user-attachments/assets/8fccc587-43df-41f0-b605-147ebed47e0f" />

  1. Codex Settings navigation: multiple Chinese labels render as tofu boxes.

<img width="560" height="1180" alt="Codex Settings navigation showing Chinese labels as tofu boxes" src="https://github.com/user-attachments/assets/6471e6b1-6147-4f4c-b1fb-450e74e17fc8" />

  1. Control: Google Chrome 150 on the same Mac renders Chinese text normally across the same font-weight matrix.

<img width="2400" height="2642" alt="Google Chrome 150 rendering the same CJK font-weight matrix normally" src="https://github.com/user-attachments/assets/cffbd5ed-8b26-412c-8441-ae855439bdb5" />

View original on GitHub ↗