fix(openai): fail fast on unrecoverable RateLimitError codes (#901) (#904)

This commit is contained in:
Sahil Yadav 2026-05-15 17:54:36 +05:30 committed by Cyber MacGeddon
parent 01b1fd849d
commit 8cf7228b63

View file

@ -104,7 +104,15 @@ class Processor(LlmService):
return resp return resp
except RateLimitError: except RateLimitError as e:
try:
body = getattr(e, 'body', {})
if isinstance(body, dict):
code = body.get('error', {}).get('code')
if code in ('insufficient_quota', 'invalid_api_key', 'account_deactivated'):
raise RuntimeError(f"OpenAI unrecoverable error: {code} - {body['error'].get('message', '')}")
except Exception:
pass
# Leave rate limit retries to the base handler # Leave rate limit retries to the base handler
raise TooManyRequests() raise TooManyRequests()
@ -188,7 +196,16 @@ class Processor(LlmService):
logger.debug("Streaming complete") logger.debug("Streaming complete")
except RateLimitError: except RateLimitError as e:
try:
body = getattr(e, 'body', {})
if isinstance(body, dict):
code = body.get('error', {}).get('code')
if code in ('insufficient_quota', 'invalid_api_key', 'account_deactivated'):
logger.warning(f"Hit unrecoverable rate limit error during streaming: {code}")
raise RuntimeError(f"OpenAI unrecoverable error: {code} - {body['error'].get('message', '')}")
except Exception:
pass
logger.warning("Hit rate limit during streaming") logger.warning("Hit rate limit during streaming")
raise TooManyRequests() raise TooManyRequests()