# Troubleshooting

An error code and message are returned when a resource can't be found, or if there is another issue with the request. Successful responses and warnings are always `200 OK`. Note that a successful request may also include a warning.

Each request will return a [GRPC status code](https://grpc.github.io/grpc/core/md_doc_statuscodes.html). Possible errors include:

| Reason                      | Notes                                                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| 400 INVALID ARGUMENTS (400) | The request contains missing or incorrect values. See the error details for additional troubleshooting information. |
| 404 NOT FOUND (404)         | The resource couldn't be found.                                                                                     |
| 503 SERVICE UNAVAILABLE     | Returned when the resource is temporarily unavailable.                                                              |
| 502 BAD GATEWAY             | Returned when the service is temporarily unavailable.                                                               |
| 401 UNAUTHORIZED            | Authorization information is missing or invalid.                                                                    |
| 403 FORBIDDEN               | Returned when the user doesn't have permission to access the resource.                                              |
| 404 NOT FOUND               | Returned when the resource doesn't exist.                                                                           |

### Sample Error Response

```json
{
  "code": "InvalidArgument",
  "message": "Invalid Arguments",
  "request_id": "7b5de8c61e26d19e5de0a1cce8dc497a",
  "timestamp": "2021-11-18T21:53:27.543650338Z",
  "details": [
    {
      "@type": "type.googleapis.com/google.rpc.BadRequest",
      "field_violations": [
        {
          "field": "account_id",
          "description": "Cannot be empty"
        },
        {
          "field": "account_id",
          "description": "must be exactly 12 digits"
        },
        {
          "field": "access_key_id",
          "description": "Cannot be empty"
        },
        {
          "field": "secret_key",
          "description": "Cannot be empty"
        },
        {
          "field": "regions",
          "description": "Cannot be empty list"
        },
        {
          "field": "name",
          "description": "Cannot be empty"
        },
        {
          "field": "name",
          "description": "Must be longer than 4"
        },
        {
          "field": "data_plane_id",
          "description": "Cannot be empty"
        },
        {
          "field": "data_plane_id",
          "description": "Must be a valid UUID"
        }
      ]
    },
    {
      "@type": "type.googleapis.com/errorstatus.v1.UserFacingErrorInfo",
      "reason": "INVALID_ARGUMENTS",
      "metadata": {},
      "message": "Request includes invalid arguments.",
      "resolution": "Reference error details for the exact field violations."
    }
  ]
}
```


---

# 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.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/errors.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.
