# Errors

What each error means and what to do.

Errors use the same JSON shape. Act on the HTTP status and `error`; `message` is for people.

```json
{ "status": 429, "message": "…", "error": "client_channels" }
```

| HTTP | `error` | Meaning | What to do |
| --- | --- | --- | --- |
| `400` | names the field | A field is missing, unknown or badly formatted. | Fix the request. |
| `403` | | The `did` isn't active for calls, or the account isn't set up yet. | Check the `did`, then contact support. |
| `403` | `no_balance` | The wallet is empty. | [Recharge](/docs/console/wallet), then retry. |
| `429` | `client_channels` | You're at your limit of calls in progress. | Wait for a call to end. |
| `429` | `client_cps` | Too many calls started in the same second. | Space calls at least a second apart. |
| `429` | `pool_busy` | No line is free right now. | Retry after a short wait. |
| `502`, `503` | | Temporary problem. The call wasn't placed. | Retry after a short wait. |
| `504` | | No answer in time. The call may have been placed. | Check [status webhooks](/docs/call-api/status-webhooks) before retrying. |
