# Troubleshooting

Installing FlexMetal servers can be a straightforward process. This document seeks to provide valuable troubleshooting tips related to service setup, resource limitations, and resource availability, thereby enhancing your understanding and efficiency in managing these servers.

## Error handling

Here are some common error messages you might encounter, along with guidance on how to resolve them.

* **Requested instance type is not available in the selected location**: When you receive this message, select a different location or instance type.
* **Quota exceeded for selected location and instance type**: This means that you have reached the limit of the amount of servers based on your contract. You can try to select a different location, or contact our support team to discuss about adjusting your quota.
* **Failed to provision server**: The installation of the Operating System encountered an issue, resulting in the cancellation of the server delivery. You can try to reorder the server. In the rare case that the problem continues, please reach out to our support team for assistance.

## Server Request Error message examples <a href="#server-request-error-message-examples" id="server-request-error-message-examples"></a>

Here are some examples of potential errors you might encounter while submitting server requests using the API or working with Terraform are outlined below.

### API

```json
{
    "errorCode": 11001,
    "errorMessage": "Errors in form",
    "errors": [
        {
            "property": "location",
            "message": "invalid location"
        },
        {
            "property": "instanceType",
            "message": "invalid instanceType"
        }
    ]
}
```

### Terraform

```shell
│ Error: Error creating server
│
│   with i3dnet_flexmetal_server.my-talos,
│   on main.tf line 15, in resource "i3dnet_flexmetal_server" "my-talos":
│   15: resource "i3dnet_flexmetal_server" "my-talos" {
│
│ Message: Invalid location
│ Message: Invalid instanceType
```

## Server Delivery Error message examples <a href="#server-delivery-error-message-examples" id="server-delivery-error-message-examples"></a>

When a server delivery is pending but a failure is encountered, you can can identify this via the `status` and `statusMessage` fields in the server object.

When the `status` field displays `failed`, a more precise reason for failure is provided in the `statusMessage` field.

### API

```json
{
    "uuid": "f7b1b1b1-1b1b-1b1b-1b1b-1b1b1b1b1b1b",
    "name": "my-talos",
    "status": "failed",
    "statusMessage": "Failed to provision server",
    ...
}
```

### Terraform

```shell
╷
│ Error: Server creation failed
│
│   with i3dnet_flexmetal_server.my-talos,
│   on main.tf line 15, in resource "i3dnet_flexmetal_server" "my-talos":
│   15: resource "i3dnet_flexmetal_server" "my-talos" {
│
│ Status message: Failed to provision server
╵
```


---

# 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.i3d.net/compute/flexmetal/troubleshooting.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.
