Summary
codex-multi-auth forecast --live reports both configured accounts as unavailable due to runtime skip: rate-limited, even though Codex continues to execute requests successfully.
The diagnostic output says the accounts are ready on disk but unavailable in runtime state, which appears to be a false-positive runtime availability check.
Reproduction
- Configure multiple accounts with codex-multi-auth.
- Run:
codex-multi-auth forecast --live
- Run:
codex-multi-auth doctor --fix
- Observe that both accounts are marked as unavailable.
- Run a normal Codex prompt and verify that Codex still responds successfully.
Expected Behavior
If Codex requests can still be executed successfully, accounts should not be reported as unavailable.
Actual Behavior
forecast --live reports:
Best-account preview (2 account(s), model gpt-5.5, live check on)
Result: 0 ready now | 0 waiting | 2 unavailable | 0 high risk
1. Account 1 [current] | unavailable | medium risk (45)
runtime skip: rate-limited; primary quota 2% used; secondary quota 27% used
quota: 5h 98% | 7d 73%
2. Account 2 | unavailable | medium risk (50)
runtime skip: rate-limited; primary quota 1% used; secondary quota 27% used
quota: 5h 99% | 7d 73%
Note: All accounts are blocked or exhausted. Wait for a reset, clear the block, or run `codex-multi-auth login` to add a fresh account.
doctor --fix reports:
Doctor diagnostics
Summary: 16 ok, 2 warnings, 0 errors
✓ storage-file: Account storage file found
✓ storage-readable: Storage file is readable
✓ codex-auth-file: Codex auth file found
✓ codex-auth-readable: Codex auth file is readable
✓ codex-config-file: Codex config file found
✓ codex-auth-store: Codex auth storage is set to file
✓ codex-cli-state: Codex CLI state loaded
✓ accounts: Loaded 2 account(s)
✓ active-index: Active index is valid (1)
✓ enabled-accounts: 2 enabled / 0 disabled
✓ duplicate-refresh-token: No duplicate refresh tokens detected
✓ duplicate-email: No duplicate emails detected
✓ placeholder-email: No placeholder emails detected
✓ refresh-token-shape: Refresh token format looks normal
✓ recommended-switch: Current account aligns with forecast recommendation
! forecast-runtime-alignment: 2 account(s) look ready on disk but unavailable in runtime state
account 1: runtime skip: rate-limited
account 2: runtime skip: rate-limited
✓ active-selection-sync: Manager active account and Codex active account are aligned
! auto-fix: Applied 1 fix(es)
Auto-fix actions (applied):
- Synced manager active account into Codex auth state
Additional Evidence
Immediately after forecast --live reported all accounts as unavailable, I ran:
codex "Reply only with: codex works"
and received:
text codex works
This suggests the runtime availability check is more restrictive than actual Codex request execution.
Environment
- codex-cli: 0.136.0
- codex-multi-auth: 2.2.1
- Node.js: v26.0.0
- macOS: 26.4.1
Compliance Confirmation
Summary
codex-multi-auth forecast --livereports both configured accounts as unavailable due to runtime skip: rate-limited, even though Codex continues to execute requests successfully.The diagnostic output says the accounts are ready on disk but unavailable in runtime state, which appears to be a false-positive runtime availability check.
Reproduction
codex-multi-auth forecast --livecodex-multi-auth doctor --fixExpected Behavior
If Codex requests can still be executed successfully, accounts should not be reported as unavailable.
Actual Behavior
forecast --livereports:doctor --fixreports:Additional Evidence
Immediately after
forecast --livereported all accounts as unavailable, I ran:codex "Reply only with: codex works"and received:
text codex worksThis suggests the runtime availability check is more restrictive than actual Codex request execution.
Environment
Compliance Confirmation