> For the complete documentation index, see [llms.txt](https://docs.i3d.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.i3d.net/compute/flexvm/troubleshooting.md).

# Troubleshooting

This page lists common issues and how to resolve them. If you can't resolve an issue yourself, see [Getting help](#getting-help) at the bottom of the page.

## VM provisioning and state

### VM is stuck in `provisioning` or never reaches `running`

The Cloud has no free capacity to place the VM, or the requested instance type cannot be placed on any of the Cloud's Nodes.

* Add a Node to the Cloud to increase capacity — see [Scaling Nodes](/compute/flexvm/creating-a-cloud-and-nodes.md#scaling-nodes).
* Confirm the instance type is available in your Cloud.
* If the VM stays in `provisioning` after capacity is available, contact support.

### VM is in the `failed` state

The VM hit an error during provisioning or operation. A `failed` VM cannot be recovered.

* Delete the VM and create a new one.
* If VMs repeatedly enter `failed`, contact support.

See [VM Lifecycle and States](/compute/flexvm/vm-lifecycle-and-states.md) for the full list of states.

## Connectivity and access

### Cannot SSH into a running VM

* **SSH key wrong or missing** — keys are set at creation and cannot be changed afterwards. Recreate the VM with the correct public key.
* **User-data did not configure access** — if the VM was created with `user_data` instead of `ssh_keys`, FlexVM installs no keys of its own: the user account and its keys or password must come from your user-data. Recreate the VM with corrected user-data. See [Cloud-init user-data](/compute/flexvm/cloud-init-user-data.md).
* **VM not ready** — confirm the VM is `running`, not still `starting`. On Windows, `running` is not the same as reachable: Cloudbase-Init is still applying the network configuration and any user-data script after that point, and a script that installs the OpenSSH server capability takes a few minutes on its own. Expect roughly 7 minutes before SSH answers, and wait out the first ten before troubleshooting. See [Windows images](/compute/flexvm/cloud-init-user-data.md#windows-images).
* **Client IP not whitelisted** — verify your IP whitelisting.
* **Network reachability** — VMs are reachable only within your Tenant VLAN. Connect from within that network. See [Network Configuration](/compute/flexvm/network-configuration.md).
* **Windows: firewall rule scoped to the wrong profile** — Windows OpenSSH uses port 22 like Linux, but a firewall rule only applies to the profile the VM's network is in, and Windows classifies an unidentified network as Public. An `OpenSSH-Server-In-TCP` rule that is enabled but scoped to Private or Domain blocks SSH while `sshd` runs normally. Log in over RDP and compare the two:

  ```powershell
  Get-NetConnectionProfile | Select-Object Name, NetworkCategory
  Get-NetFirewallRule -Name OpenSSH-Server-In-TCP | Select-Object Enabled, Profile
  ```

  Fix it by widening the rule rather than reclassifying the network, so it survives the network being re-identified: `Set-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -Enabled True -Profile Any`. See [Windows images](/compute/flexvm/cloud-init-user-data.md#windows-images).
* **Windows: `sshd` not running** — the OpenSSH server capability does not always register the service on the boot it is installed. Check `Get-Service sshd` and the Cloudbase-Init log at `C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\cloudbase-init.log` to see whether the user-data script ran and where it stopped.

### GPU or NVMe device not visible inside the VM

Passthrough devices require the appropriate drivers in the guest OS.

* Install and verify the GPU/NVMe drivers inside the VM.
* Confirm you used an image compatible with the passthrough hardware.

## Cloud and Node management

### `409 Conflict` when creating a Cloud

A Cloud with the same name already exists. Choose a unique name.

### Cannot delete a Node (`node_has_vms` / `node_not_running`)

* `node_has_vms` — the Node still hosts active VMs. Move or delete those VMs first.
* `node_not_running` — the Node is in a transitional state (e.g. still provisioning or already being removed). Wait until it settles.

### Cannot delete a Cloud

The Cloud still has active VMs. Delete all VMs in the Cloud first.

## API errors

### `401` / `403` on API calls

* The `PRIVATE-TOKEN` header is missing or invalid — check your API token.
* The calling IP is not whitelisted — add it to your whitelist.

See [API v3 Authentication](/game-hosting/overview/apiv3-authentication.md).

### A list endpoint returns only 25 results

This is the default page size. Use the `RANGED-DATA` header to page through larger result sets — see [Getting started with FlexVM](/compute/flexvm/getting-started-with-flexvm.md#pagination).

## Getting help

If you can't resolve an issue — especially anything related to networking, which is configured by i3D.net internal teams — contact i3D.net support. Include your **Tenant (K#)**, the **Cloud UUID**, and the **VM UUID** so we can locate the resources quickly.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.i3d.net/compute/flexvm/troubleshooting.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
