Request pressure
The same key succeeds at low concurrency but fails during bursts. Look for rate_limit_exceeded, Retry-After, or rate-limit headers.
Reduce concurrency and honor Retry-AfterHTTP 429 can mean request throttling, account or project limits, or a relay upstream pool issue. Check error.code, response headers, and the failure scope before retrying.
HTTP 429 can mean request throttling, account or project limits, or a relay upstream pool issue. Check error.code, response headers, and the failure scope before retrying.
Do not start with repeated retries. First capture the redacted response body, error.code, Retry-After, request ID, affected model, and whether another model works with the same key.
The same key succeeds at low concurrency but fails during bursts. Look for rate_limit_exceeded, Retry-After, or rate-limit headers.
Reduce concurrency and honor Retry-AfterSignals such as insufficient_quota or billing_hard_limit_reached point to credits, spend caps, or project-level limits.
Check billing and limits; do not retry blindlyOnly one model or route fails, several users fail together, or the relay reports no available upstream account. This requires relay-side confirmation.
Test another model, then contact the relayerror.code = rate_limit_exceededRequest or token rate limitHonor Retry-After, lower concurrency, add bounded backofferror.code = insufficient_quotaCredits, budget, or project quotaCheck billing or project limits; retries will not restore quotaOne model fails; another worksModel route or relay upstream channelList available models and compare the affected routeEvery model and key failsRelay gateway or shared upstream incidentRun connection diagnosis and check relay statusUse placeholders and keep your real key local. Add -i so the response headers are visible; remove conversation history and optional parameters while diagnosing.
BASE_URL="https://your-api.example/v1"
API_KEY="your-local-key"
curl -i "$BASE_URL/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "your-model-id",
"messages": [{"role":"user","content":"Reply OK"}],
"max_tokens": 8,
"stream": false
}'A rate-limit signal includes Retry-After, or a low-concurrency request succeeds. Wait as instructed and retry no more than a small bounded number while diagnosing.
The response says insufficient_quota, billing, invalid key, or permission denied. Fix the account or access condition first.
The payload is relay-specific or vague. Test one other model with the same key and run connection diagnosis before assigning the cause.