codex - 💡(How to fix) Fix Service Tier selector is hidden when refresh token is expired but access token is still valid

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Root Cause

This is confusing because the UI silently hides the selector instead of either showing the selector, refreshing the auth state, or clearly indicating that reauthentication is required.

RAW_BUFFERClick to expand / collapse

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

26.602.30954

What subscription do you have?

Pro

What platform is your computer?

Darwin 25.5.0 arm64 arm

What issue are you seeing?

When the Codex Mac App is in a partially authenticated state where the refresh token is expired or invalid but the access token is still valid, the bottom prompt composer does not show the Service Tier selector (fast / normal).

The app still appears to be logged in and usable, so there is no clear indication that the authentication state is degraded. After reauthenticating with a valid refresh token and reopening the Codex App, the Service Tier selector appears normally.

This is confusing because the UI silently hides the selector instead of either showing the selector, refreshing the auth state, or clearly indicating that reauthentication is required.

What steps can reproduce the bug?

  1. Open Codex Mac App with an account state where the access token is still valid, but the refresh token is expired or invalid.
  2. Open any conversation.
  3. Look at the bottom prompt composer.
  4. Observe that the Service Tier selector (fast / normal) is not visible.
  5. Reauthenticate the same account so that the refresh token is valid again.
  6. Reopen the Codex App.
  7. Open the bottom prompt composer again.
  8. Observe that the Service Tier selector is now visible.

This can be reproduced more easily when switching between multiple Codex accounts using an external account-switching utility, such as Codex Switcher, because that workflow can expose a state where the access token remains valid while the refresh token is expired or invalid.

Session id / token limit usage / context window usage: not applicable. This appears to be an authentication-state/UI issue rather than a model-session issue.

What is the expected behavior?

The bottom prompt composer should not silently hide the Service Tier selector because of an expired or invalid refresh token while the app still appears authenticated.

Expected behavior should be one of the following:

  • The app refreshes or revalidates the authentication state and shows the Service Tier selector correctly.
  • The app displays a clear reauthentication prompt or warning.
  • The Service Tier selector remains visible but disabled with an explanation.

Additional information

This may be difficult to reproduce during normal in-house testing because the Codex App appears to refresh authentication state frequently in the standard single-account flow. In normal usage, users are unlikely to remain in a state where the access token is still valid but the refresh token is expired or invalid.

However, users who switch between multiple Codex accounts using external account-switching utilities, such as Codex Switcher, can encounter this state more easily. In that scenario, the app may still have a valid access token while the refresh token is expired or invalid.

So while this may be an edge case in the default app workflow, it is reproducible for multi-account users and results in a confusing UI state: the app appears authenticated, but the Service Tier selector is silently hidden until the user reauthenticates.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING