Codex Desktop API-key profile avatar falls back to Settings, showing “设” in zh-CN

Open Beginner friendly
#30,169 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
javascript, macos

Research direction

Start with webview/assets/app-initialapp-mainautomations-page-DJKJJMuc.js and trace the profile footer fallback keyed by codex.profileFooter.signedInFallback. Check the API-key path and the zh-CN translation, then verify that the footer label and avatar no longer derive from Settings when account details are unavailable.

Written by the indexing model from the issue text.

Description

app auth bug
What version of the Codex App are you using?

Codex Desktop: 26.623.31443
CFBundleVersion: 4441
Platform: macOS arm64
Auth method: OpenAI API key
UI locale observed: zh-CN

What issue are you seeing?

When signed in with an API key, the profile/footer avatar in Codex Desktop shows the Chinese character as the avatar initial and the profile/footer label shows 设置 (Settings). This is confusing and makes the signed-in account look like it is named "Settings".

Screenshot symptom:

  • Profile dropdown correctly says: 已通过 API 密钥登录 (Logged in with API key)
  • Profile footer/avatar below it shows:
  • Footer label below/next to the avatar shows: 设置

This is not an acceptable account identity fallback. If there is no user name/email for API-key auth, the app should use a neutral identity such as API key, Account, Codex, or a non-text account icon, not Settings.

Expected behavior

For API key authentication, if no profile name or email is available:

  • Profile footer display name should be something like API key / API key account / Account.
  • Avatar initials should be derived from that account/auth label, or use a generic account icon.
  • It should not derive initials from Settings.
Actual behavior

The profile footer falls back to the localized string for Settings, so in Chinese the display name is 设置 and the avatar initial becomes .

Likely root cause

I inspected the current Desktop app bundle. In the extracted webview bundle:

webview/assets/app-initial~app-main~automations-page-DJKJJMuc.js

The profile footer display name is computed as:

N = c?.name?.trim()
  || d?.email
  || n.formatMessage({
       id: `codex.profileFooter.signedInFallback`,
       defaultMessage: `Settings`,
       description: `Fallback label shown in the profile footer`
     })

Then the avatar text is derived from that fallback:

R = Rv(P)
...
children: z

For API-key auth, the code also only enables the account-info query for ChatGPT auth:

let l = a === `chatgpt`
...
ed(`account-info`, { queryConfig: { enabled: l } })

So with API-key auth, c?.name and d?.email may be absent, and the fallback becomes Settings.

The zh-CN locale confirms the fallback translation:

"codex.profileFooter.signedInFallback": `设置`

This directly explains the visible avatar initial.

Why this should be fixed

The account/profile footer is an identity surface. Falling back to Settings makes the UI look broken and misidentifies the user/account. This is especially visible in CJK locales because the avatar becomes the first character of 设置.

A minimal fix would be to change codex.profileFooter.signedInFallback from Settings to something identity-related, e.g. Account or API key, and preferably choose an auth-specific fallback when authMethod === "api-key".

Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

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.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.