## TL;DR

400 with context_length_exceeded means the prompt exceeded the model's Context: A bare HTTP status is not enough to decide retry behavior.

## The error

```text
separate rate limit, billing, and model errors
```

## Fix

1. 400 with context_length_exceeded means the prompt exceeded the model's Context: A bare HTTP status is not enough to decide retry behavior.
   Expected: you can confirm this matches your situation.
2. Re-run the original operation and confirm the error is gone.
   Expected: no error, normal output.

## When to use

- You hit this exact error with DeepInfra inference errors.
- The symptom matches: separate rate limit, billing, and model errors.

## When NOT to use

- A different error message from DeepInfra inference errors; the cause here is specific to this error.
- Unrelated DeepInfra inference errors issues (different feature, different failure).
- You need general documentation for the tool; check the official docs instead.

## Compatibility

Reported against DeepInfra inference errors. Source: https://github.com/revisionlabsai/revidotnet/blob/HEAD/ReviDotNet.Core/Docs/inference-errors.md.

## Variant phrasings

### separate rate limit, billing, and model errors

## Why it happens

trim, do not retry. 400 model_not_found and 404 both mean the model ID is wrong; check the model list. 429 without a billing code is a real rate limit: back off. 429 with insufficient_quota or credit_balance_exhausted is a billing problem: retrying burns time, top up instead. 408, 409, 498, and 5xx are transient: retry with backoff. 401 is authentication: fix the key.

## Edge cases

- If your error message differs even slightly, this is probably a different issue; search the exact text.
- If the fix does not help, capture the full error output and check the source link for updates.

## Source

https://github.com/revisionlabsai/revidotnet/blob/HEAD/ReviDotNet.Core/Docs/inference-errors.md