OpenAI API 429 오류 해결, rate limit reached와 quota exceeded 차이
OpenAI API를 처음 붙이면 가장 많이 만나는 오류 중 하나가 429입니다. 문제는 429라고 다 같은 429가 아니라는 점입니다. 같은 429라도 어떤 경우는 요청을 너무 빠르게 보내서 생기고, 어떤 경우는 현재 quota나 결제 한도를 넘어 생깁니다. 이 차이를 모르고 무작정 재시도만 하면 시간만 낭비하게 됩니다.
OpenAI 공식 문서에서도 429를 두 가지로 구분해 설명합니다. 하나는 rate limit reached for requests이고, 다른 하나는 exceeded your current quota입니다. 이 둘은 해결 방법이 다릅니다.
429 rate limit reached란 무엇인가
이 오류는 너무 짧은 시간 안에 요청을 많이 보내서 생깁니다. 쉽게 말하면 서버가 “잠깐만, 너무 빠르다”라고 제한을 거는 것입니다. 요청 수, 토큰 수, 모델별 제한, 사용량 티어에 따라 다르게 걸릴 수 있습니다.
429 quota exceeded란 무엇인가
이 오류는 요청 속도 문제보다 billing이나 사용량 한도 문제에 가깝습니다. OpenAI 공식 오류 코드 문서에는 현재 quota를 초과했거나 월간 지출 한도, 크레딧, 결제 상태 문제일 수 있다고 설명합니다.
두 오류 차이를 먼저 구분해야 하는 이유
rate limit reached
- 잠깐 쉬었다가 다시 보내면 풀릴 수 있음
- 요청 빈도 조절이 핵심
quota exceeded
- 결제나 예산 설정을 확인해야 함
- 아무리 다시 시도해도 바로 해결되지 않을 수 있음
429 rate limit reached가 뜰 때 해결법
1. 요청 간격을 늘립니다
가장 기본적인 방법입니다. 한 번에 너무 빠르게 연속 호출하지 않도록 간격을 줘야 합니다.
2. 지수 백오프를 적용합니다
OpenAI Cookbook도 재시도 시 exponential backoff를 권장합니다. 바로 다시 때리기보다 1초, 2초, 4초처럼 점점 늘려 재시도하는 방식입니다.
3. 병렬 요청 수를 줄입니다
여러 스레드나 여러 작업이 동시에 API를 때리면 제한에 더 쉽게 걸립니다. 특히 배치 작업이나 자동화에서 자주 발생합니다.
4. 더 가벼운 모델이나 더 짧은 출력으로 조정합니다
토큰 사용량이 많을수록 제한 체감이 커질 수 있습니다.
5. Usage Tier와 모델별 제한을 확인합니다
OpenAI 문서에는 사용량 티어와 모델별 제한이 다를 수 있다고 안내돼 있습니다.
429 quota exceeded가 뜰 때 해결법
1. Billing 설정을 확인합니다
API billing이 제대로 설정돼 있는지 먼저 확인합니다.
2. 현재 사용량과 월 지출 한도를 확인합니다
예산 제한이나 monthly spend cap에 걸린 경우 재시도만으로는 해결되지 않습니다.
3. 프로젝트나 조직을 잘못 보고 있지 않은지 확인합니다
다른 프로젝트 키를 쓰거나 조직이 다른 경우도 있습니다.
4. 무료 크레딧이 끝났는지 확인합니다
예전 방식과 다르게 크레딧 정책은 시기별로 달라질 수 있으니 현재 계정 상태를 플랫폼에서 직접 보는 편이 정확합니다.
개발할 때 꼭 넣어야 할 대응 방식
단순히 try-except만 넣는 것보다, 429의 종류를 보고 다르게 대응하는 편이 좋습니다.
- rate limit 계열이면 대기 후 재시도
- quota 계열이면 운영자에게 billing 점검 알림
- 반복 실패 시 로그에 시간, 모델, 요청량, 응답 메시지 남기기
실무에서 많이 놓치는 부분
1. 성공 요청만 계산하고 실패 요청도 rate limit에 영향을 준다는 점을 놓침
2. 배치 작업에서 병렬 요청을 과하게 잡음
3. 개발용과 운영용 키를 섞어서 씀
4. quota exceeded인데 rate limit로 착각하고 무한 재시도함
초보자 기준으로 가장 쉬운 구분법
오류 문구에 “rate limit reached”가 보이면 속도를 줄이는 쪽입니다.
오류 문구에 “current quota”나 “billing details”가 보이면 결제와 사용량 한도를 보는 쪽입니다.
제가 추천하는 점검 순서
1. 오류 문구를 정확히 확인
2. rate limit인지 quota인지 먼저 구분
3. Usage와 Billing 확인
4. 요청 간격 조절
5. 병렬 요청 수 축소
6. exponential backoff 적용
7. 모델과 토큰 수 최적화
OpenAI API 429 오류는 하나로 뭉뚱그려 보면 계속 헷갈립니다. 하지만 rate limit reached와 quota exceeded를 나눠 보면 해결 방향이 아주 명확해집니다. 제 기준에서는 429가 뜨면 가장 먼저 문구부터 읽고, 속도 문제인지 결제 문제인지 구분하는 습관이 제일 중요합니다.
참고한 공식 문서
OpenAI Developers
- Error codes
- Rate limits guide
- GPT-5 model docs
- How to handle rate limits (Cookbook)
- Production best practices
댓글
댓글 쓰기