> ## Documentation Index
> Fetch the complete documentation index at: https://docs.roundproxies.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Error Handling

> Error reference, retry behavior, and operational notes for the Reseller API.

## Error reference

| Status | Example message                                                    | What to do                                               |
| ------ | ------------------------------------------------------------------ | -------------------------------------------------------- |
| `400`  | `Not enough unassigned data: requested 5GB, remaining 2.00GB. ...` | Top up your allocation or assign less                    |
| `400`  | Validation errors — `message` is an array of strings               | Fix the request body                                     |
| `401`  | `Invalid reseller API key`                                         | Check the key; rotate it from the dashboard if lost      |
| `401`  | `Reseller account is suspended`                                    | Contact support                                          |
| `404`  | `Sub-user "x" not found`                                           | Check the username — you can only see your own sub-users |
| `409`  | `Username "x" is already taken. Pick another one.`                 | Choose a different username                              |
| `502`  | `... Nothing was charged — please retry.`                          | Retry — the operation is atomic                          |

<Note>
  On validation failures the `message` field is an **array** of strings, not a single string. Handle both shapes when parsing errors.
</Note>

## Retries

`502` responses are always safe to retry. Creation and top-ups are atomic: on any failure, nothing is charged and no sub-user is left half-created. You will not double-spend your pool by retrying.

Other statuses are not transient — retrying a `400` or `409` with the same body returns the same error.

## Suspended accounts

If every call starts returning `401 Reseller account is suspended`, contact support. Your existing sub-users keep working until their data runs out, so your customers aren't cut off immediately, but you can't create or top up accounts while suspended.

## Sub-user lifecycle

<Warning>
  Sub-users cannot be deleted or paused. An account works until its data is consumed, and data assigned to a sub-user cannot be moved back to your pool.
</Warning>

Assign conservatively and top up as needed, rather than front-loading a large allocation you can't reclaim.

## Usage etiquette

Usage lookups hit the gateway live. Fetch them when you actually need them — page loads, billing runs — rather than in tight polling loops. On [`GET /reseller/users`](/reseller/sub-users#listing-your-sub-users), `includeUsage=true` costs one gateway lookup per row, so it's the request most worth keeping out of a loop.

Questions? Contact your Roundproxies account manager or email [team@roundproxies.com](mailto:team@roundproxies.com).
