# Error Handling

### Error Response Format

All errors return a JSON body with an `error` field:

json

```json
{
  "error": "position account 7xKXtg... not found"
}
```

***

### HTTP Status Codes

| Code  | Meaning             | When                                                                 |
| ----- | ------------------- | -------------------------------------------------------------------- |
| `200` | Success             | Request completed normally                                           |
| `400` | Bad Request         | Invalid pubkey format, invalid parameters, or configuration error    |
| `404` | Not Found           | Account or resource doesn't exist                                    |
| `429` | Too Many Requests   | Per-owner connection limit reached (5 per owner on streaming)        |
| `500` | Internal Error      | Server-side computation error                                        |
| `503` | Service Unavailable | Global connection limit reached (10K) or required price data missing |

***

### Transaction Builder Errors

Transaction builder and preview endpoints return `200` even when computation fails. Always check the `err` field before using response data.

json

```json
{
  "newLeverage": "0",
  "newEntryPrice": "0",
  "err": "Target price not available"
}
```
