← 中文资源

简体中文版本

OpenAI 限流超限返回 429 与 retry-after

OpenAI 返回 429 Too Many Requests,因为请求速率或 token 用量超过账户层级限制,retry-after 头指示何时重试。

阅读英文原文

症状分析

OpenAI 返回 429 Too Many Requests,因为请求速率或 token 用量超过账户层级限制,retry-after 头指示何时重试。 该错误在生产环境中出现,但可能不会在本地开发中复现,因为触发条件依赖于部署环境或运行时配置。理解完整的症状集合有助于将此问题与类似错误区分开来。

诊断实践

按照前置事项中的诊断步骤定位原因。每个步骤包含命令和输出解读。目标是缩小问题范围:配置、运行时还是应用代码。在最小化环境中复现错误后再应用修复。

根因

The OpenAI API enforces per-tier rate limits on requests per minute and tokens per minute; exceeding either triggers a 429 with a retry-after header.

修复

Implement exponential backoff with jitter, reduce concurrency, cache responses, or request a tier upgrade. Use the retry-after header to schedule retries. 应用修复后,监控系统以确认错误在负载下或不同环境中不再复现。

验证

Send requests within the rate limit and confirm no 429; verify the backoff logic retries correctly after a 429. 如果验证通过,修复即确认;如果未通过,重新检查诊断步骤中是否遗漏了促成因素。

诊断命令

运行以下命令复现和诊断问题:

curl -v https://api.openai.com/v1/chat/completions -H "Authorization: Bearer $KEY"
openai api usage --date $(date +%Y-%m-%d)