# Error Responses

The following is a list of all error responses returned by the License API.

All errors have an HTTP status of 400 or higher and the response body is a JSON object in the following format:

{% code title="Example (TypeScript)" %}

```typescript
{
  status: number,
  code: string,
  message: string
}
```

{% endcode %}

JSON Schema

{% code title="JSON Schema" %}

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": { "type": "number" },
    "code": { "type": "string" },
    "message": { "type": "string" }
  },
  "required": [
    "status",
    "code",
    "message"
  ],
  "additionalProperties": false
}
```

{% endcode %}

| **Code** | **Status**                                           | **Notes**                                                                                                                                                   |
| -------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 404      | not\_found                                           | Requested API path doesn't exist                                                                                                                            |
| 400      | validation\_error                                    | Caused by request data not conforming to the validation schema. The `message` of the error response contains details on what failed                         |
| 400      | missing\_headers                                     | A required header is missing                                                                                                                                |
| 400      | missing\_parameters                                  | A required parameter in the query or body of the request is missing                                                                                         |
| 400      | missing\_content                                     | An offline activation/deactivation request received an empty request                                                                                        |
| 400      | invalid\_json                                        | Caused by general invalid json in POST requests                                                                                                             |
| 400      | active\_license\_required                            | A `/versions` or `/installation_file` request is called without an active license provided in the parameters                                                |
| 400      | api\_key\_product\_not\_allowed                      | An activation is being attempted using an API key which does not have permissions to activate the requested product                                         |
| 400      | archived\_product                                    | An activation is being attempted on a product which is archived                                                                                             |
| 400      | authorization\_invalid\_headers                      | Provided `Authorization` header is malformed                                                                                                                |
| 400      | authorization\_missing\_params                       | Provided `Authorization` header has missing data                                                                                                            |
| 400      | blacklisted                                          | Activation is being attempted using a blacklisted device                                                                                                    |
| 400      | borrow\_until\_not\_valid                            | `/floating/borrow` is being called with an invalid `borrowed_until` date                                                                                    |
| 400      | change\_password\_not\_allowed                       | `/change_password` is being called but is not allowed                                                                                                       |
| 400      | customer\_account\_id\_mismatch                      |                                                                                                                                                             |
| 400      | customer\_account\_not\_found                        | When creating an order, the provided `customer_account_id` does not match an existing customer                                                              |
| 400      | customer\_does\_not\_exist                           | `/customer_license_users` is being called but the provided customer does not exist                                                                          |
| 400      | customer\_not\_found                                 | `/customer_license_users` is being called with authorization values which do not grant permissions to view data for the given customer                      |
| 400      | device\_not\_found                                   | A license deactivation or an endpoint which changes license values is being called using an inactive license device                                         |
| 400      | disabled\_product                                    | A license activation is being attempted on a product which is disabled                                                                                      |
| 400      | email\_missing                                       | A request to generate a trial license for a user-based license is being attempted with no email provided                                                    |
| 400      | feature\_not\_enough\_consumptions                   | Adding a feature consumption is being attempted but the consumption limit has already been reached                                                          |
| 400      | feature\_not\_floating                               | `/floating/feature_release` is being called on a feature which is not a floating cloud feature                                                              |
| 400      | floating\_feature\_device\_not\_in\_use              | `/floating/feature_release` is being called on a feature which has no associated used device                                                                |
| 400      | floating\_not\_available                             | A check, borrow or release is being called on a floating cloud license which has no available slots left                                                    |
| 400      | hardware\_key\_required                              | An action is being attempted which requires a `licensespring-hardware-key` header                                                                           |
| 400      | hmac\_required                                       | An API-key-based Authorization header was sent but is missing a hmac value                                                                                  |
| 400      | invalid\_api\_key                                    | An invalid API key is being used                                                                                                                            |
| 400      | invalid\_hardware\_id                                | An action requiring a hardware ID parameter received an empty hardware ID                                                                                   |
| 400      | invalid\_license\_feature\_code                      | A license feature action is being attempted on a feature which cannot be found                                                                              |
| 400      | invalid\_product\_auth\_method                       | `/customer_license_users` is being called on a product which is not a user-based product                                                                    |
| 400      | invalid\_value                                       | A provided parameter does not contain a valid value. The `message` of the error will contain more information on the parameter and acceptable values        |
| 400      | key\_product\_based\_does\_not\_allow\_users         | An order is being created for a key-based license, but a list of users was provided                                                                         |
| 400      | license\_activated\_max\_times                       | A new license activation is being attempted, but the license has already been activated the maximum number of times allowed                                 |
| 400      | license\_borrow\_not\_allowed                        | A license borrowing is being attempted on a license which does not allow borrowing                                                                          |
| 400      | license\_device\_exists                              |                                                                                                                                                             |
| 400      | license\_expired                                     | A license activation or borrowing is being attempted on an expired license                                                                                  |
| 400      | license\_hwid\_not\_found                            | `/device_licenses` is being called, but the provided device has no associated licenses                                                                      |
| 400      | license\_not\_active                                 | An action is being attempted on a license which is not active                                                                                               |
| 400      | license\_not\_consumption                            | A consumption action is being attempted on a license which is not a consumption-type license                                                                |
| 400      | license\_not\_enabled                                | An action is being attempted on a license which is not enabled                                                                                              |
| 400      | license\_not\_enough\_consumptions                   | Adding a license consumption is being attempted but the consumption limit has already been reached                                                          |
| 400      | license\_not\_found                                  | An action is being attempted on a license which cannot be found                                                                                             |
| 400      | license\_start\_date\_error                          | A license activation is being attempted but is not allowed by the license's `start_date`                                                                    |
| 400      | license\_transferred\_max\_times                     | A license transfer is being attempted, but the maximum number of allowed transfers has already been reached                                                 |
| 400      | license\_user\_activated\_max\_times                 | A new license activation is being attempted, but the license user has already activated this license the maximum number of times allowed                    |
| 400      | license\_user\_not\_found                            | An action is being attempted for a user-based license, but the provided user is not associated to the license                                               |
| 400      | license\_users\_error                                | An order is being created but the number of provided users exceeds the `max_license_users` value set on the license                                         |
| 400      | missing\_hardware\_key\_certificate                  | A request requiring a `licensespring-hardware-key` was sent but the device specified has no assigned device certificate                                     |
| 400      | negative\_consumptions\_not\_allowed                 | A consumption request with a negative consumption value was sent, but negative consumptions are not allowed on this license                                 |
| 400      | oauth\_product\_not\_allowed                         | An OAuth-authorized request is being attempted using OAuth credentials which do not have access to the requested resource                                   |
| 400      | oauth\_required                                      | A request is being attempted using API Key credentials, but OAuth is enforced as the only allowed authorization mechanism                                   |
| 400      | oauth\_token\_expired                                | A request is being attempted using an expired OAuth token                                                                                                   |
| 400      | oauth\_token\_malformed                              | A request is being attempted using a malformed OAuth token                                                                                                  |
| 400      | offline\_floating\_cloud\_not\_supported             | An offline activation is being attempted on a floating cloud license which does not allow offline activation                                                |
| 400      | product\_not\_bundle                                 | A bundle action is being attempted but the specified product is not a bundle                                                                                |
| 400      | quantity\_too\_large                                 | A request for generating license keys was sent to the `/license` webhook, but the requested amount of keys to generate exceeds the maximum allowed quantity |
| 400      | read\_only\_api\_key                                 | A non-read action is being attempted using a read-only API Key                                                                                              |
| 400      | revoked\_api\_key                                    | An action is being attempted using an API Key which has been revoked                                                                                        |
| 400      | trial\_expired                                       | An activation is being attempted on an expired trial license                                                                                                |
| 400      | trial\_not\_allowed                                  | A trial license is being requested but the product does not allow trial licenses                                                                            |
| 400      | unknown\_policy\_code                                | A license policy was specified in the request but no such policy was found                                                                                  |
| 400      | unknown\_product\_code                               | A product code was specified in the request but no such product was found                                                                                   |
| 400      | unsupported\_product\_feature                        | A feature consumption is being attempted on a feature which is not a consumption feature                                                                    |
| 400      | user\_based\_product\_does\_not\_allow\_license\_key | A license in the order request contains a license key but the product is not a key-based product                                                            |
| 400      | user\_not\_assigned\_to\_product                     | A `/user_licenses` request has been sent but the provided user is not assigned to any license                                                               |
| 400      | version\_not\_found                                  | An `/installation_file` request has been sent but no file version has been found that matches the given parameters                                          |
| 400      | vm\_not\_allowed                                     | An activation is being attempted which was sent from a Virtual Machine but the licenses disallows VM activations                                            |
| 401      | authentication\_failure                              | Authentication for the request has failed                                                                                                                   |
| 401      | hardware\_key\_signature\_mismatch                   | The hardware key value sent in the `licensespring-hardware-key` is invalid                                                                                  |
| 401      | invalid\_client\_credentials                         | OAuth authentication failed                                                                                                                                 |
| 401      | offline\_signature\_mismatch                         | An offline activation or deactivation is being attempted but the provided `signature` value is invalid                                                      |
| 401      | signature\_mismatch                                  | An API-key request is being sent but the signature in the header is invalid                                                                                 |
| 409      | license\_key\_exists                                 | An order request has been sent but failed due to a `license_key` collision                                                                                  |
| 409      | order\_id\_exists                                    | A non-appending order request has been sent but the provided order `id` already exists                                                                      |
| 500      | internal\_error                                      | An unexpected server error has occured                                                                                                                      |
| 500      | adding\_manager\_error                               | An error has occured while attempting to assign a license manager                                                                                           |
| 500      | mail\_sending\_error                                 | An error has occured while attempting to send a notification for a consumption or assigning a license user to a license order                               |
| 500      | notification\_sending\_error                         | An error has occured while attempting to send a notification for a license activation, trial key, order creation                                            |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.licensespring.com/license-api/error-responses.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
