Peter Steinberger
1a27e7f3ec
fix(codex): model-scoped usage-limit blocks, structural 429 classification, no silent API-key billing ( #108254 )
...
* test(codex): use allowlisted placeholder for auth-bridge api-key fixture
* fix(codex): model-scoped usage-limit blocks, structural 429 classification, no silent API-key billing
- usage-limit blocks written from Codex rate-limit resets are model-scoped via
a persisted blockedScope marker: healthy sibling models on the same auth
profile stay usable; a different/unknown model failing widens the block
profile-wide and never narrows back; legacy rows without the marker stay
profile-wide until they expire (#100556 )
- Codex usage-limit failures now surface as status-429 Error objects at both
ingress paths (turn-start and streamed turn failure, wrapped at the event
projector), so core failover classification is structural instead of
matching message wording; profile blocking uses only rate-limit data whose
revision advanced during the turn
- usage-limit detection requires the structured codexErrorInfo signal; the
over-broad "usage limit" substring match that misclassified unrelated
errors as subscription limits is gone (#96815 )
- subscription/OAuth routes can no longer silently fall back to env/auth.json
API keys: ambient key fallback is restricted to explicit api-key routes,
native-auth subscription routes verify the account is chatgpt-backed via
account/read, and shared app-server clients are partitioned by auth
requirement so pooled clients cannot cross billing modes (#106375 )
- integrated e2e regression: usage-limit promptError -> same-model sibling
profile rotation -> model fallback with reason rate_limit
* chore(codex): keep CodexUsageLimitErrorResult type local
2026-07-15 04:10:57 -07:00
..
2026-07-08 23:07:20 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 23:09:25 -07:00
2026-07-09 07:31:18 +01:00
2026-07-12 22:23:11 -07:00
2026-07-08 23:07:20 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-09 14:26:05 +05:30
2026-07-09 14:26:05 +05:30
2026-07-12 22:23:11 -07:00
2026-07-14 09:27:02 -07:00
2026-07-06 12:31:45 -07:00
2026-07-12 22:23:11 -07:00
2026-07-15 00:51:24 -07:00
2026-07-15 00:51:24 -07:00
2026-07-15 00:51:24 -07:00
2026-07-09 14:26:05 +05:30
2026-07-15 04:10:57 -07:00
2026-07-11 15:26:48 -07:00
2026-07-15 04:10:57 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-09 14:26:05 +05:30
2026-07-12 22:23:11 -07:00
2026-07-11 10:25:14 -07:00
2026-07-12 22:23:11 -07:00
2026-07-15 04:10:57 -07:00
2026-07-15 04:10:57 -07:00
2026-07-11 15:26:48 -07:00
2026-07-13 21:15:36 -07:00
2026-07-11 00:12:08 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-11 05:39:29 -07:00
2026-07-11 15:26:48 -07:00
2026-07-11 15:26:48 -07:00
2026-07-14 07:07:52 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-11 09:42:27 -05:00
2026-07-12 22:23:11 -07:00
2026-07-11 09:42:27 -05:00
2026-07-12 22:23:11 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-15 00:37:04 -07:00
2026-07-15 00:37:04 -07:00
2026-07-06 12:30:12 +01:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-15 00:37:04 -07:00
2026-07-15 00:51:24 -07:00
2026-07-15 00:51:24 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-14 11:00:08 -07:00
2026-07-15 04:10:57 -07:00
2026-07-15 04:10:57 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 23:09:25 -07:00
2026-07-11 10:25:14 -07:00
2026-07-15 04:10:57 -07:00
2026-07-11 10:25:14 -07:00
2026-07-12 23:09:25 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-07 07:25:15 +01:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 10:51:38 +01:00
2026-07-11 09:04:55 -07:00
2026-07-12 22:23:11 -07:00
2026-07-14 09:27:02 -07:00
2026-07-12 22:23:11 -07:00
2026-07-08 23:07:20 -07:00
2026-07-07 05:48:53 +01:00
2026-07-12 22:23:11 -07:00
2026-07-11 15:26:48 -07:00
2026-07-11 15:26:48 -07:00
2026-07-07 07:25:15 +01:00
2026-07-07 07:25:15 +01:00
2026-07-15 04:10:57 -07:00
2026-07-15 04:10:57 -07:00
2026-07-11 10:25:14 -07:00
2026-07-13 09:56:47 -07:00
2026-07-14 01:09:05 -07:00
2026-07-14 17:09:53 +05:30
2026-07-15 04:10:57 -07:00
2026-07-13 15:32:59 -07:00
2026-07-15 04:10:57 -07:00
2026-07-14 20:35:33 -06:00
2026-07-14 20:35:33 -06:00
2026-07-14 20:35:33 -06:00
2026-07-13 09:58:01 -07:00
2026-07-15 00:51:24 -07:00
2026-07-13 15:32:59 -07:00
2026-07-13 15:32:59 -07:00
2026-07-13 15:32:59 -07:00
2026-07-13 15:32:59 -07:00
2026-07-13 15:32:59 -07:00
2026-07-15 04:10:57 -07:00
2026-07-13 09:58:01 -07:00
2026-07-12 22:23:11 -07:00
2026-07-07 07:25:15 +01:00
2026-07-14 11:03:02 -07:00
2026-07-14 11:03:02 -07:00
2026-07-13 15:32:59 -07:00
2026-07-15 04:10:57 -07:00
2026-07-15 00:51:24 -07:00
2026-07-13 15:32:59 -07:00
2026-07-14 09:27:02 -07:00
2026-07-12 22:23:11 -07:00
2026-07-11 14:50:37 -07:00
2026-07-15 00:51:24 -07:00
2026-07-01 10:34:20 -07:00
2026-07-14 11:03:02 -07:00
2026-07-13 15:32:59 -07:00
2026-07-15 00:51:24 -07:00
2026-07-15 04:10:57 -07:00
2026-07-11 10:25:14 -07:00
2026-07-14 09:27:02 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-11 01:09:51 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-04 01:43:21 -07:00
2026-07-07 05:48:53 +01:00
2026-07-07 03:03:44 +01:00
2026-07-11 00:12:08 -07:00
2026-07-11 00:12:08 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 00:18:18 -07:00
2026-07-14 23:50:01 -07:00
2026-07-14 23:50:01 -07:00
2026-07-15 04:10:57 -07:00
2026-07-15 04:10:57 -07:00
2026-07-15 00:37:04 -07:00
2026-07-14 09:27:02 -07:00
2026-07-15 04:10:57 -07:00
2026-07-11 00:12:08 -07:00
2026-07-12 22:23:11 -07:00
2026-07-11 09:42:27 -05:00
2026-07-11 00:12:08 -07:00
2026-07-14 11:03:02 -07:00
2026-07-14 11:03:02 -07:00
2026-07-14 11:03:02 -07:00
2026-07-12 09:30:50 +08:00
2026-07-11 10:25:14 -07:00
2026-07-11 10:25:14 -07:00
2026-07-06 12:30:12 +01:00
2026-07-12 22:23:11 -07:00
2026-07-11 14:50:37 -07:00
2026-07-11 14:50:37 -07:00
2026-07-14 09:27:02 -07:00
2026-07-14 01:09:05 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00
2026-07-07 07:25:15 +01:00
2026-07-12 22:23:11 -07:00
2026-07-14 01:09:05 -07:00
2026-07-15 04:10:57 -07:00
2026-06-23 15:48:27 +08:00
2026-07-14 01:09:05 -07:00
2026-07-12 22:23:11 -07:00
2026-07-12 22:23:11 -07:00