Adam Perry @ OpenAI
d5b29951ac
Centralize retry decisions and delays in CodexErr ( #46540 )
...
## What changed
Replace `is_retryable()` with `retry_delay(retry_count)`, which returns `None` for terminal errors and a delay for retryable errors. Prefer server advice when present; otherwise use exponential backoff with jitter. Keep `server_retry_delay()` for callers that need only the server-provided delay.
Route sampling and remote compaction errors through the shared response stream handler, which now checks retryability and obtains the delay together. Preserve server-only retry timing when the retry budget is exhausted.
## Testing
Add coverage for attempt-dependent backoff, zero-duration server advice, and terminal errors that remain non-retryable despite server advice. Update API mapping and provider tests to use the combined retry API.
GitOrigin-RevId: 903f92935e71dea043afe1fad8ccb9389471aa75
2026-09-19 00:46:30 +00:00
..
2026-09-15 02:35:59 +00:00
2026-08-24 22:40:35 +00:00
2026-09-18 22:41:26 +00:00
2026-09-19 00:18:56 +00:00
2026-09-14 22:31:32 +00:00
2026-09-19 00:14:40 +00:00
2026-09-18 23:37:11 +00:00
2026-09-03 06:02:25 +00:00
2026-09-16 16:56:41 +00:00
2026-08-20 08:10:08 +00:00
2026-09-11 20:10:02 +00:00
2026-09-18 00:25:37 +00:00
2026-09-17 00:49:12 +00:00
2026-09-09 03:17:48 +00:00
2026-09-15 19:13:08 +00:00
2026-09-07 16:55:06 +00:00
2026-08-14 05:03:39 +00:00
2026-08-17 22:37:14 +00:00
2026-09-19 00:14:40 +00:00
2026-09-18 00:25:37 +00:00
2026-09-03 01:46:37 +00:00
2026-08-28 19:44:50 +00:00
2026-09-11 17:00:07 +00:00
2026-09-11 17:00:07 +00:00
2026-09-11 17:00:07 +00:00
2026-09-15 18:52:15 +00:00
2026-09-19 00:46:30 +00:00
2026-09-15 17:32:33 +00:00
2026-09-19 00:46:30 +00:00
2026-09-14 19:12:59 +00:00
2026-09-18 00:59:10 +00:00
2026-09-05 01:25:06 +00:00
2026-09-19 00:00:01 +00:00
2026-08-31 21:27:51 +00:00
2026-09-15 18:23:08 +00:00
2026-09-18 22:40:37 +00:00
2026-09-19 00:46:30 +00:00
2026-09-11 01:57:54 +00:00
2026-09-19 00:14:07 +00:00
2026-09-05 12:17:32 +00:00
2026-09-17 23:35:56 +00:00
2026-09-18 00:51:34 +00:00
2026-09-17 04:37:54 +00:00
2026-08-17 04:37:50 +00:00
2026-09-19 00:46:06 +00:00
2026-09-17 04:23:45 +00:00
2026-09-19 00:00:01 +00:00
2026-09-18 23:07:36 +00:00
2026-09-17 17:59:19 +00:00
2026-09-06 20:52:29 +00:00
2026-09-17 18:56:26 +00:00
2026-09-17 10:02:38 +00:00
2026-09-10 00:26:30 +00:00
2026-09-18 23:17:17 +00:00
2026-09-11 21:59:24 +00:00
2026-09-19 00:31:23 +00:00
2026-09-19 00:14:07 +00:00
2026-09-17 19:42:56 +00:00
2026-09-16 23:26:00 +00:00
2026-09-19 00:46:30 +00:00
2026-09-18 22:29:16 +00:00
2026-09-19 00:18:56 +00:00
2026-09-19 00:00:01 +00:00
2026-09-19 00:00:01 +00:00
2026-09-16 22:43:57 +00:00
2026-09-01 17:17:45 +00:00
2026-09-16 21:15:09 +00:00
2026-09-19 00:18:56 +00:00
2026-09-19 00:46:30 +00:00
2026-09-11 03:16:01 +00:00
2026-09-17 21:25:55 +00:00
2026-08-21 16:45:05 +00:00
2026-09-18 23:59:18 +00:00
2026-09-18 22:29:16 +00:00
2026-08-28 01:14:02 +00:00
2026-09-19 00:20:02 +00:00
2026-09-17 23:35:32 +00:00
2026-09-15 18:06:03 +00:00
2026-09-09 04:00:10 +00:00
2026-09-05 05:21:42 +00:00
2026-09-15 02:33:27 +00:00
2026-09-16 09:03:41 +00:00
2026-09-02 18:34:27 +00:00
2026-09-14 21:06:36 +00:00
2026-09-16 22:33:15 +00:00
2026-09-17 19:34:45 +00:00
2026-09-19 00:30:05 +00:00
2026-09-16 16:56:41 +00:00
2026-09-08 00:13:28 +00:00
2026-09-18 23:59:18 +00:00
2026-09-11 22:09:02 +00:00
2026-09-18 23:17:17 +00:00
2026-09-18 23:25:49 +00:00
2026-09-18 00:36:07 +00:00
2026-08-15 14:31:04 +00:00
2026-09-13 18:53:06 +00:00
2026-09-08 21:19:02 +00:00
2026-09-19 00:46:06 +00:00
2026-09-16 23:26:00 +00:00
2026-09-11 06:45:09 +00:00