Codex Desktop App uses credits from the original account even after switching to a different Plus account

Open 💬 3 comments Opened May 6, 2026 by saivenkat1105
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

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

Version 26.429.61741 (2429)

What subscription do you have?

Plus

What platform is your computer?

Linux 6.8.0-110-generic x86_64 x86_64

What issue are you seeing?

I am currently connected to a remote SSH server(Linux 6.8.0-110-generic x86_64 x86_64) through Codex desktop app in macOS(Darwin 25.3.0 arm64 arm). I switched accounts after reaching usage limits in my first account. Even after switching the account, all requests are still attributed to the first account. Creating a new thread and starting a a conversation also atrributes the credits to the first account. But /status points to the latest account.

<img width="404" height="385" alt="Image" src="https://github.com/user-attachments/assets/6887af57-f496-4b90-bfb3-740f9da89ce6" />

What steps can reproduce the bug?

(Connected to an ssh server through Codex Desktop)

  1. Log in to Account A.
  2. Start a chat thread and send a message. Usage is correctly billed to Account A.
  3. Log out or switch to Account B.
  4. Continue the conversation in the same thread from Step 2.
  5. Observed Behavior: Usage for the new messages is still attributed to Account A. But /status shows account B status

What is the expected behavior?

Usage and telemetry should be attributed to the currently logged-in account (Account B).

Additional information

I have logged into Account B in codex desktop app, ssh server directly and codex cli as well. This issue doesn't occur if I use codex cli in the ssh server but happens when using Codex Desktop app connected to ssh server.
Crating a new conversation in the local machine attributed the usage to Account B while all new and old conversations in the ssh project attributed it to account A.

I have already checked the issue #14730 but the solution in the thread did not help as this is specific to ssh connections through codex.

Session ID - 019dfb0a-87e9-7f42-9919-c2c49ba519f4

View original on GitHub ↗

3 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #19590

Powered by Codex Action

Jckwind · 2 months ago

Confirming this bug with billing impact, plus a working recovery procedure after manually debugging it end to end.

Setup: Codex desktop app on macOS (latest), using the built-in SSH feature to drive a remote Mac (also latest). The remote host's codex was authenticated as Account A; I logged the desktop app into Account B. The UI showed Account B active with 100% usage remaining.

Impact: All usage in existing threads continued billing Account A. Account A had hit its plan limits, so usage fell through to pay-as-you-go API credits with auto-reload — ~$600 in $5 increments over ~24 hours, with no indication in the desktop UI that the remote host was executing under a different identity. I've opened a support ticket requesting a refund of the auto-reload charges.

Mechanism (found by manual debugging): Threads pin the auth identity they were created with and hold it past logout. After logging the remote host out of Account A, every existing thread failed with: "Your access token could not be refreshed because you have since logged out or signed in to another account. Please sign in again." — they never rebound to the active account.

Recovery procedure that worked:

  1. Log out of the Codex desktop app on both devices (local and remote)
  2. Kill all codex app-server processes on both machines (pkill -f "codex app-server" — stale servers accumulate and hold the old identity)
  3. Log in on the remote (SSH'd) device first
  4. Then log in on the local device

After that, all usage correctly attributes to the new account. The login order and the app-server kill both appear to matter — logging in on the laptop alone, or without killing stale app-servers, was not sufficient.

Suggested fixes: propagate account switches to remote hosts (or kill/restart their app-servers on switch), and surface a visible warning when a remote host's identity differs from the UI's active account.

twentyOne2x · 2 months ago

Adding an adjacent current-build datapoint and cross-linking #27601. This is not a billing-attribution claim; I did not verify which account was charged. The verified symptom is Desktop live-state not fully refreshing after account switching.

Environment:

Codex Desktop 26.608.12217 / build 3722
Bundled CLI 0.138.0-alpha.7
macOS 26.3 / Darwin 25.3.0 arm64

Observed pattern:

  1. Heavy Desktop use across many local threads/repos.
  2. Sign out / sign into another ChatGPT account after usage limits.
  3. Codex CLI can often recover after exit/relaunch/login refresh.
  4. Codex Desktop remains degraded until the GUI app is hard quit and reopened.
  5. Symptoms include hidden/blank old threads, very slow thread/resume, and intermittent turn/start timeout / message submission errors.

This suggests some Desktop app-server/sidebar/thread-manager/auth state survives sign-out/sign-in and only gets reset by a full Desktop process restart.