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

# Compliance Engine API error codes

> Descriptions of error codes returned by the Compliance Engine API

The Wallets and Contracts APIs return an
[HTTP status code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) when
they encounter an error in an API request:

* `4xx` errors are client errors, which are informative and actionable. They
  communicate a mistake to the user and suggest fixes.
* `5xx` errors are unexpected server-side errors.

The tables in the following sections describe some of the common error messages
you might encounter using the Wallets and Contracts APIs. Where possible, a
suggested fix is provided in the `Description` column.

## General error format

HTTP status codes do not always provide sufficient information to determine the
cause of the error. Since the status code is part of the header of the response,
the body of response contains additional, Circle-specific, error information.
For example, if a request contains an invalid parameter, the response includes
the following:

**Header**

`HTTP/1.1 400 Bad RequestContent-Type: application/json`

**Body**

```json JSON theme={null}
{
  "code": 2,
  "message": "API parameter invalid"
}
```

## Extended error format

In some cases, the response includes extended information about the cause of the
error. For example, if a request doesn't include a value for a required
parameter, the response includes a detailed error message:

**Header**

`HTTP/1.1 400 Bad RequestContent-Type: application/json`

**Body**

```json JSON theme={null}
{
  "code": 2,
  "message": "API parameter invalid",
  "errors": [
    {
      "error": "required",
      "message": "fail to bind request to CreateWalletSetRequest: EOF",
      "location": "field1",
      "invalidValue": "null",
      "constraints": {}
    }
  ]
}
```

## General errors

This section describes some common extended error messages you might encounter
using Wallets and Contracts APIs.

The following errors are general errors that can be returned for any request.

| Error Code | HTTP code | Error Message          | Description                                                      |
| :--------- | :-------- | :--------------------- | :--------------------------------------------------------------- |
| `-1`       | `400`     | `Something went wrong` | An unknown error occurred while processing the API request.      |
| `3`        | `403`     | `Forbidden`            | The API key used does not have access to the requested endpoint. |

### Invalid requests

A `400` HTTP status code indicates that the request is invalid or malformed.
When the request is invalid, the Circle-specific error code is `2`. The
following table describes the common error messages that can be returned for
invalid requests.

| Error Code | HTTP code | Error Message                                                             | Description                                                                                                          |
| :--------- | :-------- | :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------- |
| `2`        | `400`     | `Invalid Entity`                                                          | There is an error in the JSON format passed in the request.                                                          |
| `2`        | `400`     | `Fail to bind request to parameter: invalid UUID format`                  | The parameter must be in UUID format.                                                                                |
| `2`        | `400`     | `Error: Field validation`                                                 | One of the fields in the request is invalid.                                                                         |
| `2`        | `400`     | `Error: Field validation for blockchain failed on the blockchain tag`     | The blockchain does not exist. Try again with a [supported blockchain](/wallets/supported-blockchains).              |
| `2`        | `400`     | `Error: Field validation for gasLimit failed on the required_without tag` | If `feeLevel` is provided, `gasLimit` should be set to `NULL`. If `feeLevel` is `NULL`, `gasLimit` must be provided. |
| `2`        | `400`     | `Error: Field validation for parameter failed on the min tag`             | The parameter is not in the correct format.                                                                          |
| `2`        | `400`     | `Cannot unmarshal`                                                        | The JSON body of the request is not valid.                                                                           |
| `2`        | `400`     | `INVALID: parameter empty`                                                | The parameter is required for this request. Try the request again with this parameter.                               |

## Compliance Engine errors

This section includes the errors that can be returned from Compliance Engine API
requests.

### Standalone screening errors

| Error code | HTTP code | Error message                | Description                                                    |
| ---------- | --------- | ---------------------------- | -------------------------------------------------------------- |
| `280001`   | `400`     | `Unsupported blockchain`     | Provided blockchain either does not exist or is not supported. |
| `280002`   | `400`     | `Invalid blockchain address` | Provided blockchain address is not valid.                      |
