---
title: Errors
description: Status codes and error bodies returned by the ControlCom Connect API, and what to check for each.
source: https://documentation.controlcomtech.com/errors
---

# Errors

The ControlCom Connect API reports failures with standard HTTP status codes and a JSON body that says what went wrong. This page lists the codes you will meet and what each one means for your request.

> **Workflow Stage: Integrate**

## Status Codes

A `2xx` response means the request succeeded. Anything in the `4xx` range means the request itself needs to change; `5xx` means the platform failed to process a valid request, which is rare and worth reporting to support together with the request you sent.

| Status | Meaning                                                                                                         |
| ------ | --------------------------------------------------------------------------------------------------------------- |
| `400`  | Validation failed. The body contains an `errors` array describing each invalid field.                           |
| `401`  | Missing or invalid credentials. Check the `Authorization` header and that the API key or token has not expired. |
| `403`  | The credentials are valid but lack a required permission. The body lists them in `missingPermissions`.          |
| `404`  | The record does not exist in this organization, or the path is wrong.                                           |
| `409`  | A uniqueness conflict, such as reusing a name that must be unique.                                              |

## Error Body

Error responses carry a `message` and, depending on the failure, either an `errors` array (validation) or a `missingPermissions` array (authorization). A permission error looks like this:

**Permission error**

```json
{
  "missingPermissions": ["CreateDevice"],
  "message": "Request failed to complete. Missing required permissions"
}
```

Permissions are granted per role in [Team](https://documentation.controlcomtech.com/platform/team); an API key inherits the permissions of the role it was created with. Authentication itself is covered in [API Reference: Authentication](https://documentation.controlcomtech.com/api-reference/authentication), and the [API Reference](https://documentation.controlcomtech.com/api-reference#errors) overview repeats this table alongside pagination and request conventions.
