openai / openai/codex

[Desktop] Non-dismissible subscription quota banner persists in working custom API sessions

Open
#46,317 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug custom-model rate-limits
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.911.61220 (9647)

What subscription do you have?

ChatGPT subscription, with separate API credentials and billing for a custom OpenAI-compatible provider.

What platform is your computer?

macOS 27.0, arm64.

What issue are you seeing?

After the ChatGPT subscription allowance is exhausted, the desktop app continues to show a large subscription-quota banner in newly created local conversations configured to use a custom API provider. I can continue working through that provider, but the banner remains fixed above the composer and has no visible close or dismiss control.

The localized banner says:

Codex 和工作使用额度已用完

添加额度即可立即继续使用,或等待使用量于 [reset time] 重置

English translation: “Your Codex and Work usage allowance has been exhausted. Add credits to continue immediately, or wait until [reset time] for usage to reset.” The only visible action is “Add credits.”

I intentionally retain the ChatGPT login while using independently configured API credentials for local tasks. The subscription warning therefore remains visible even in a working custom-provider conversation, taking up space and making the subscription quota state easy to confuse with the active provider's availability.

What steps can reproduce the bug?
  1. Sign in to the desktop app with a ChatGPT subscription.
  2. Configure a custom OpenAI-compatible API provider with its own credentials while retaining the ChatGPT login. In this setup, CC Switch 3.20.3 manages the switch.
  3. Exhaust the ChatGPT subscription allowance and have no additional ChatGPT credits available.
  4. Select the custom provider and create a new local conversation.
  5. Continue working in that conversation. The subscription-quota banner remains displayed with no visible way to dismiss it.

Relevant CC Switch settings in the observed setup:

{
  "preserveCodexOfficialAuthOnSwitch": true,
  "unifyCodexSessionHistory": false,
  "enableLocalProxy": false
}

Sanitized effective Codex configuration (endpoint and credential are placeholders):

model_provider = "custom"

[model_providers.custom]
name = "custom"
base_url = "https://api.example.invalid/v1"
wire_api = "responses"
requires_openai_auth = true
experimental_bearer_token = "<REDACTED>"

auth.json retains the ChatGPT OAuth login (auth_mode = "chatgpt"); its top-level OPENAI_API_KEY is empty. The custom provider's API credential is configured separately as shown above. Newly created conversation metadata records model_provider = "custom".

What is the expected behavior?

Allow this subscription-quota banner to be dismissed without logging out, changing provider authentication, or modifying the application bundle. Ideally, remember dismissal for the current quota window.

Alternatively, scope the prominent subscription-limit banner to conversations that actually use the subscription provider, while keeping account usage information available in the usual usage/settings interface. This should only change presentation, without altering actual quota enforcement.

Additional information

This report concerns the persistent, non-dismissible UI banner. Billing attribution has not been independently audited.

Logging out of ChatGPT or disabling preservation of the official login changes the intended hybrid setup; it does not provide a way to dismiss only the banner.

Related reports: #36578 and #46057 cover missing dismiss controls; #43333 covers subscription-limit state appearing in custom-provider sessions. This report adds the retained-login/custom-API configuration and the observed behavior on the version above.

Provider identity, real endpoint, credentials, account/session identifiers, exact reset timestamp, local paths, screenshots, and raw logs have been omitted for privacy.

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 banner in a desktop conversation using a custom provider while the ChatGPT subscription allowance is exhausted. Read related issues #36578, #46057, and #43333 for existing context, then trace the subscription-quota banner entry point. Done means the banner can be dismissed or is limited to conversations using the subscription provider without changing quota enforcement.

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
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.