> For the complete documentation index, see [llms.txt](https://docs.platform9.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.platform9.com/private-cloud-director/virtualized-clusters/virtualmachine/vm-tenant-transfer.md).

# Transfer a VM to Another Tenant

## Overview

Change Tenant moves a virtual machine, along with its attached volumes and network ports, from its current tenant to a different tenant. This is distinct from the [Change Owner](/private-cloud-director/virtualized-clusters/virtualmachine/virtual-machine-actions.md#change-owner) action, which only changes which user account owns the VM within the same tenant. Change Tenant changes the tenant (project) itself.

Only an Admin can perform this action. It works the same way whether the VM's owning user is a local user or an SSO user.

In this guide, you will review the requirements for a successful transfer, then transfer one or more VMs to another tenant using the UI.

## Prerequisites

<code class="expression">space.vars.product\_acronym</code> validates the following conditions before it transfers a VM. If any condition isn't met, the transfer is rejected and the reason is shown to you so you can resolve it and retry.

| Condition                                                                                | What to do if it's not met                                                                                                                  |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| The VM is Active, Stopped, Paused, or Suspended                                          | Wait for the VM to reach a stable state                                                                                                     |
| The VM is not locked                                                                     | Unlock the VM first                                                                                                                         |
| The VM does not belong to a server group                                                 | Remove the VM from the [server group](/private-cloud-director/virtualized-clusters/virtualmachine/vm-affinity-anti-affinity-rules.md) first |
| The VM's boot image is public, community, or shared with the target tenant               | Update the image's visibility or share it with the target tenant                                                                            |
| The VM's flavor is public or accessible to the target tenant                             | Grant the target tenant access to the flavor                                                                                                |
| No floating IPs are attached to the VM                                                   | Disassociate the floating IPs first                                                                                                         |
| No attached volumes have snapshots                                                       | Delete the volume snapshots first                                                                                                           |
| No encrypted volumes are attached to the VM                                              | Encrypted volumes cannot be transferred to another tenant                                                                                   |
| Every attached volume's volume type is accessible to the target tenant                   | Grant the target tenant access to the volume type                                                                                           |
| Every network the VM is attached to is shared, or owned by the target tenant             | Share the network with the target tenant                                                                                                    |
| The target tenant exists and differs from the VM's current tenant                        | Choose a valid, different target tenant                                                                                                     |
| If the VM belongs to a non-admin user, that user already has a role in the target tenant | Assign the user a role in the target tenant first                                                                                           |

{% hint style="info" %}
**pcdctl**

Change Tenant isn't available as a `pcdctl` command in this release. Use the UI to transfer a VM to another tenant.
{% endhint %}

## Transfer VMs Using the UI

### Transfer a Single VM

1. Navigate to **Virtual Machines** in the left-hand navigation menu.
2. Select the VM in the VM grid view, then choose **Change Tenant** from the Actions menu. Alternatively, open the VM's details page and choose **Change Tenant** from the Actions menu there.
3. In the **Change Tenant** dialog, select the target tenant. The VM's current tenant appears in the list but is disabled, since a VM cannot be transferred to its current tenant. Only tenants that you have access to appear in the list.
4. Review the notice that the VM's attached volumes and network ports will also transfer to the target tenant.
5. Select **Confirm**.

### Transfer Multiple VMs

1. Navigate to **Virtual Machines** in the left-hand navigation menu.
2. Select the VMs in the VM grid view, then choose **Change Tenant** from the **Other** dropdown in the table header.
3. In the **Change Tenant** dialog, select the target tenant, then select **Confirm**.

<code class="expression">space.vars.product\_acronym</code> processes all selected VMs together. If some VMs pass validation and others don't, the VMs that pass are still transferred, and the dialog shows the specific error for each VM that failed, so you can resolve the issue and retry just those VMs.

{% hint style="warning" %}
**If a prerequisite isn't met**

The dialog shows the validation error directly, for example when a target tenant doesn't exist or when the VM's owning user has no role in the target tenant. Resolve the issue listed in [Prerequisites](#prerequisites) and retry the transfer.
{% endhint %}

## Related Pages

* [Virtual Machine Actions](/private-cloud-director/virtualized-clusters/virtualmachine/virtual-machine-actions.md): the full list of actions available on a VM, including Change Owner
* [Tenants & Region](/private-cloud-director/identity-and-multi-tenancy/tenant.md): what a tenant is and how it relates to domains
* [RBAC Roles and Permissions](/private-cloud-director/identity-and-multi-tenancy/rbac-roles-and-permissions.md): what the Admin role can do compared to Self-Service and ReadOnly users
* [VM Affinity Anti-Affinity Rules](/private-cloud-director/virtualized-clusters/virtualmachine/vm-affinity-anti-affinity-rules.md): server groups, which a VM must leave before it can be transferred


---

# 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.platform9.com/private-cloud-director/virtualized-clusters/virtualmachine/vm-tenant-transfer.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.
