You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Codex Desktop App uses credits from the original account even after switching to a different Plus account #21314
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.
What steps can reproduce the bug?
(Connected to an ssh server through Codex Desktop)
Log in to Account A.
Start a chat thread and send a message. Usage is correctly billed to Account A.
Log out or switch to Account B.
Continue the conversation in the same thread from Step 2.
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.
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:
Log out of the Codex desktop app on both devices (local and remote)
Kill all codex app-server processes on both machines (pkill -f "codex app-server" — stale servers accumulate and hold the old identity)
Log in on the remote (SSH'd) device first
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.
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.
Heavy Desktop use across many local threads/repos.
Sign out / sign into another ChatGPT account after usage limits.
Codex CLI can often recover after exit/relaunch/login refresh.
Codex Desktop remains degraded until the GUI app is hard quit and reopened.
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.
Activity
github-actions commentedon May 6, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Jckwind commentedon Jun 9, 2026
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:
codex app-serverprocesses on both machines (pkill -f "codex app-server"— stale servers accumulate and hold the old identity)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 commentedon Jun 11, 2026
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:
Observed pattern:
thread/resume, and intermittentturn/starttimeout / 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.