Teknium
63bcdcaa43
fix(auth): refresh an expired Codex token before the quota-restored probe
...
_probe_codex_quota_restored was called with the exhausted pool entry's
stored access token. Exhausted entries are skipped by the proactive refresh
chain, so for any cooldown longer than the access-token lifetime (the
weekly-cap case the probe exists for) that token has expired: the usage
endpoint answers 401 token_expired, the probe maps it to None, and the
cooldown is kept. A mid-cooldown credit top-up or plan upgrade was
therefore never discovered until last_error_reset_at elapsed, even though
the refresh token was still valid (#89415 ).
Add _refresh_expired_codex_probe_token: when the stored token is expired
and a refresh token exists, rotate the pair via refresh_codex_oauth_pure
(cooldown untouched), persist it (refresh tokens are single-use), and probe
with the live token. Both probe callers use it: the pool-only resolve path
(_probe_codex_pool_entry_quota_restored) and
CredentialPool._codex_quota_restored_upstream. A probe that still reports
100% keeps the bench; the rotated tokens are persisted either way.
Fixes #89415
2026-09-19 09:40:56 -07:00
..
2026-09-19 01:55:38 -07:00
2026-09-13 05:07:50 -07:00
2026-09-18 10:22:14 -07:00
2026-09-13 05:07:11 -07:00
2026-09-19 16:20:29 +05:30
2026-09-19 09:39:50 -07:00
2026-09-15 04:56:01 -07:00
2026-09-06 20:50:02 +05:30
2026-09-19 09:40:23 -07:00
2026-09-13 09:18:02 -07:00
2026-09-19 09:21:18 -07:00
2026-09-19 09:37:23 -07:00
2026-09-17 08:59:50 -07:00
2026-09-19 01:44:10 +05:30
2026-09-19 11:25:23 +05:30
2026-09-06 05:37:03 -07:00
2026-09-17 08:46:05 -07:00
2026-09-14 20:01:19 +05:30
2026-09-17 08:53:15 -07:00
2026-09-19 09:39:50 -07:00
2026-09-17 08:45:46 -07:00
2026-09-17 09:07:51 -07:00
2026-09-19 02:37:36 -07:00
2026-09-17 09:11:38 -07:00
2026-09-18 11:11:44 -07:00
2026-09-19 09:28:45 -07:00
2026-09-13 05:19:48 -07:00
2026-09-07 07:06:58 -07:00
2026-09-19 16:21:40 +05:30
2026-09-18 15:15:02 -07:00
2026-09-16 11:06:06 -07:00
2026-09-15 03:39:07 -07:00
2026-09-19 09:28:45 -07:00
2026-09-18 01:43:35 +05:30
2026-09-07 05:24:15 -07:00
2026-09-18 10:10:40 -07:00
2026-09-19 09:28:13 -07:00
2026-09-19 09:26:35 -07:00
2026-09-19 09:30:56 -07:00
2026-09-06 22:45:31 +05:30
2026-09-15 03:47:15 -07:00
2026-09-18 10:36:11 -07:00
2026-09-13 05:09:43 -07:00
2026-09-18 10:36:11 -07:00
2026-09-19 21:12:46 +05:30
2026-09-11 02:07:48 -07:00
2026-09-16 17:17:47 -07:00
2026-09-16 16:59:03 -07:00
2026-09-13 05:20:26 -07:00
2026-09-18 13:58:52 -07:00
2026-09-19 09:29:49 -07:00
2026-09-18 09:33:38 -07:00
2026-09-16 17:16:06 -07:00
2026-09-19 09:37:23 -07:00
2026-09-19 09:40:56 -07:00
2026-09-18 20:55:24 -07:00
2026-09-11 03:45:33 +05:30
2026-09-19 09:20:54 -07:00
2026-09-19 09:39:50 -07:00
2026-09-07 08:19:32 -07:00
2026-09-16 17:48:48 -07:00
2026-09-18 10:03:04 -07:00
2026-09-19 09:37:23 -07:00
2026-09-17 12:28:25 +05:30
2026-09-19 09:37:23 -07:00
2026-09-18 10:08:58 -07:00
2026-09-18 09:28:39 -07:00
2026-09-14 06:44:54 -07:00
2026-09-11 15:26:46 -07:00
2026-09-17 13:52:36 +05:30
2026-09-16 17:09:50 -07:00
2026-09-12 01:35:05 -07:00
2026-09-15 03:58:05 -07:00
2026-09-12 08:23:13 -07:00
2026-09-18 13:01:12 -04:00
2026-09-16 17:48:17 -07:00
2026-09-07 08:28:43 -07:00
2026-09-18 09:21:42 -07:00
2026-09-11 11:54:49 -07:00
2026-09-15 19:03:33 -07:00
2026-09-13 05:19:48 -07:00
2026-09-15 03:47:15 -07:00
2026-09-14 20:35:28 +05:30
2026-09-19 21:12:46 +05:30
2026-09-18 20:56:35 -07:00
2026-09-18 20:56:35 -07:00
2026-09-19 09:39:50 -07:00
2026-09-18 15:40:37 +05:30
2026-09-13 05:09:43 -07:00
2026-09-18 01:43:35 +05:30
2026-09-17 12:28:25 +05:30
2026-09-06 09:11:04 -07:00
2026-09-13 05:09:06 -07:00
2026-09-19 09:21:18 -07:00
2026-09-19 09:38:39 -07:00
2026-09-11 15:26:46 -07:00
2026-09-16 11:06:06 -07:00
2026-09-17 09:03:29 -07:00
2026-09-18 09:56:28 -07:00
2026-09-19 09:21:18 -07:00
2026-09-14 06:55:54 -07:00
2026-09-18 10:22:14 -07:00
2026-09-15 06:16:38 -07:00
2026-09-11 03:45:33 +05:30
2026-09-18 15:40:37 +05:30
2026-09-14 20:35:28 +05:30
2026-09-13 21:27:35 -07:00
2026-09-10 09:22:31 -07:00
2026-09-18 09:58:12 -07:00
2026-09-18 09:52:36 -07:00
2026-09-15 03:44:36 -07:00
2026-09-16 17:10:13 -07:00
2026-09-13 19:23:09 +05:30
2026-09-13 05:09:43 -07:00
2026-09-08 04:38:47 -07:00
2026-09-18 10:22:47 -07:00
2026-09-15 19:23:53 -07:00
2026-09-17 20:56:27 +05:30
2026-09-06 05:35:12 -07:00
2026-09-18 01:43:35 +05:30
2026-09-13 05:07:11 -07:00
2026-09-18 12:51:22 -07:00
2026-09-07 07:10:28 -07:00
2026-09-18 10:22:47 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 01:43:35 +05:30
2026-09-15 18:19:26 -07:00
2026-09-09 10:31:26 +05:30
2026-09-18 01:43:35 +05:30
2026-09-16 06:27:23 -05:00
2026-09-13 05:20:26 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 10:56:00 -07:00
2026-09-10 02:21:16 +05:30
2026-09-18 10:38:08 -07:00
2026-09-18 10:03:04 -07:00
2026-09-18 10:03:04 -07:00
2026-09-06 22:56:51 +05:30
2026-09-12 08:25:14 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 10:21:05 -07:00
2026-09-14 20:35:28 +05:30
2026-09-10 10:45:57 -07:00
2026-09-06 13:21:17 -07:00
2026-09-19 09:28:45 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 10:38:08 -07:00
2026-09-16 17:48:17 -07:00
2026-09-15 04:18:34 -07:00
2026-09-18 20:56:35 -07:00
2026-09-19 12:12:04 +05:30
2026-09-18 01:43:35 +05:30
2026-09-18 09:21:42 -07:00
2026-09-09 12:17:57 +05:30
2026-09-18 01:43:35 +05:30
2026-09-18 19:18:57 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 09:49:14 -07:00
2026-09-19 09:32:00 -07:00
2026-09-07 06:15:43 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 01:43:35 +05:30
2026-09-15 20:44:42 +05:30
2026-09-18 09:21:42 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 01:43:35 +05:30
2026-09-18 09:52:36 -07:00
2026-09-17 18:36:10 -07:00
2026-09-06 13:21:17 -07:00
2026-09-10 02:44:26 -07:00
2026-09-10 11:48:01 -07:00
2026-09-15 04:56:01 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 10:22:14 -07:00
2026-09-15 04:48:20 -07:00