Error Handling

Expected errors that occur when interacting with the API result in a 4xx error code, which varies depending on the condition. All error responses contain at least a detail attribute that explains why the error has occurred. The following is a list of some of the most common errors that are encountered and why:

Not Authenticated

A 401 Unauthorized status code is sent when the resource endpoint expects the user to be authenticated but the user isn't. For example, if sending a request as an anonymous user to an authenticated endpoint the following error is sent as a response:

HTTP/1.0 401 Unauthorized
Allow: POST, OPTIONS
Content-Length: 58
Server: Cloudsmith MCP

{
  "detail": "Authentication credentials were not provided."
}

No Permissions

A 403 Forbidden status code is sent when the resource endpoint expects the user to have specific permissions, which will be detailed in the resource endpoint documentation. For example, if sending a request as an authenticated user to a resource endpoint in which we don't have permissions (such as one belonging to another user), the following error is sent as a response:

HTTP/1.0 401 Unauthorized
Allow: POST, OPTIONS
Content-Length: 63
Server: Cloudsmith MCP

{
  "detail": "You do not have permission to perform this action."
}

🚧

Variable Messages

The detail field in response can be customised by the resource endpoint, so it might be different than the text shown above.

Invalid JSON Object Error

A 400 Bad Request status code is sent when the body of the document is expected to be JSON encoded, but the actual content is otherwise. For example, if the body was sent as foo then the following error is sent as a response:

HTTP/1.0 400 Bad Request
Allow: POST, OPTIONS
Content-Length: 68
Content-Type: application/json
Server: Cloudsmith MCP

{
  "detail": "JSON parse error - No JSON object could be decoded"
}

Malformed JSON Error

A 400 Bad Request status code is sent when the body of the document is cannot be parsed as syntactically correct JSON. For example, if the body was sent as { then the following error is sent as a response:

HTTP/1.0 400 Bad Request
Content-Length: 79
Content-Type: application/json
Server: Cloudsmith MCP

{
  "detail": "JSON parse error - Expecting object: line 1 column 1 (char 0)"
}

Field Validation Error

A 422 Unprocess Entity status code is sent when the resource endpoint receives a JSON body that is syntactically but not semantically correct. These error responses contain a fields attribute that lists the specific fields affected by the error condition. For example, if the resource endpoint expected a filename attribute in the body to be populated but isn't then the following error is sent as a response:

HTTP/1.0 422 Unprocessable Entity
Content-Length: 132
Content-Type: application/json
Server: Cloudsmith MCP

{
  "fields": {
    "filename": [
      "This field may not be null."
    ]
  },
  "code": "invalid",
  "detail": "Invalid input."
}