Please read this first
- Have you read the docs? Yes. The runner-managed retry docs describe
initial_delay, max_delay, and multiplier as retry backoff settings.
- Have you searched for related issues? Yes. I searched for related
ModelRetryBackoffSettings, negative delay, negative max_delay, negative multiplier, and model retry issues/PRs and did not find a direct match.
Describe the bug
ModelRetryBackoffSettings accepts negative initial_delay, max_delay, and multiplier values. Those values can flow into the default retry delay calculation and produce negative delays. The retry sleep helper skips non-positive delays, so invalid retry configuration can turn into immediate retries instead of a clear configuration error.
Debug information
- Agents SDK version:
0.17.0
- Python version: Python 3.12.1
- Revision:
683b6e79
Repro steps
Run this script from the repository root:
from agents.retry import ModelRetryBackoffSettings
from agents.run_internal.model_retry import _default_retry_delay
settings = [
ModelRetryBackoffSettings(initial_delay=-1.0, jitter=False),
ModelRetryBackoffSettings(max_delay=-1.0, jitter=False),
ModelRetryBackoffSettings(multiplier=-2.0, jitter=False),
]
for setting in settings:
print(setting.to_json_dict(), "->", _default_retry_delay(2, setting))
Actual result:
{'initial_delay': -1.0, 'max_delay': None, 'multiplier': None, 'jitter': False} -> -2.0
{'initial_delay': None, 'max_delay': -1.0, 'multiplier': None, 'jitter': False} -> -1.0
{'initial_delay': None, 'max_delay': None, 'multiplier': -2.0, 'jitter': False} -> -0.5
Expected behavior
Negative retry backoff settings should be rejected during ModelRetryBackoffSettings construction or dict coercion, before they can produce invalid retry delays. Zero values can remain valid because they are explicit immediate-retry configuration rather than negative time.
Please read this first
initial_delay,max_delay, andmultiplieras retry backoff settings.ModelRetryBackoffSettings, negative delay, negativemax_delay, negativemultiplier, and model retry issues/PRs and did not find a direct match.Describe the bug
ModelRetryBackoffSettingsaccepts negativeinitial_delay,max_delay, andmultipliervalues. Those values can flow into the default retry delay calculation and produce negative delays. The retry sleep helper skips non-positive delays, so invalid retry configuration can turn into immediate retries instead of a clear configuration error.Debug information
0.17.0683b6e79Repro steps
Run this script from the repository root:
Actual result:
Expected behavior
Negative retry backoff settings should be rejected during
ModelRetryBackoffSettingsconstruction or dict coercion, before they can produce invalid retry delays. Zero values can remain valid because they are explicit immediate-retry configuration rather than negative time.