Causes and remedies for the error codes of virtual machine power operations, placement, configuration limits and snapshots.
error.invalid_power_state
Text in the console
The operation is not possible while the virtual machine is {power_state, select, powered_on {powered on} PoweredOn {powered on} poweredon {powered on} powered_off {powered off} PoweredOff {powered off} poweredoff {powered off} suspended {suspended} Suspended {suspended} paused {paused} Paused {paused} other {in this power state}}. {required, select, powered_off {Power off the virtual machine} powered_on {Power on the virtual machine} suspended {Suspend the virtual machine} other {Change the power state}} first, then try again.
Meaning for API clients
The operation needs another power state: power_state is the current one, required the one it needs (powered_off, powered_on or suspended).
the current power state, for example poweredon or poweredoff.
required
the power state the operation needs: powered_off, powered_on or suspended.
Cause. The operation is not possible in the current power state of the virtual machine. The required argument names the state it needs: powered_off for unregistering, converting to a template, customizing, destroying, moving storage and cloning; powered_on for reset and suspend. For power-on it is powered_off and for power-off powered_on, although a suspended or paused machine also qualifies for both.
Remedy.
Check the power state in the inventory: kyvernon inventory vm <id>.
Bring the virtual machine to the state in required, for example Power off or kyvernon vm power-off <id>, then repeat the operation.
When the state changes by itself, wait for the task that runs on the virtual machine to finish: kyvernon tasks list --target <id>.
error.vm_not_placed
Text in the console
The virtual machine is not placed on a host. {reason, select, no_connected_host {No host of its cluster is connected. Reconnect a host, then move the virtual machine to it.} all_in_maintenance {Every connected host of its cluster is in maintenance mode. End maintenance mode on a host, then move the virtual machine to it.} no_hosts {Its cluster has no hosts. Add a host to the cluster, then move the virtual machine to it.} no_compute_resource {Its resource pool does not belong to a cluster or a standalone host. Move the virtual machine to a resource pool of a cluster or host.} other {No host is assigned to it. Move the virtual machine to a host.}}
Meaning for API clients
The VM has no host. reason is no_connected_host, all_in_maintenance, no_hosts, no_compute_resource (placement finds no host today) or not_assigned (a host is available but the VM names none).
no_connected_host, all_in_maintenance, no_hosts, no_compute_resource or not_assigned.
Cause. The virtual machine has no host. The reason argument says what placement finds today:
no_connected_host: the hosts of its cluster exist but none is connected.
all_in_maintenance: every connected host of its cluster is in maintenance mode.
no_hosts: its cluster has no hosts.
no_compute_resource: its resource pool does not belong to a cluster or a standalone host.
not_assigned: a host is available, but the virtual machine record names none.
Placement looks at the connection and the maintenance mode only. Free memory is checked when you power on. Power-on does not place a virtual machine that has no host. Operations that reach into the running machine, such as the console, guest operations and verification, need a host.
Remedy.
Read the reason in the message and fix it: reconnect a host with kyvernon host reconnect <id> (no_connected_host), end maintenance mode on a host with kyvernon host exit-maintenance <id> (all_in_maintenance), add a host to the cluster (no_hosts) or move the virtual machine to a resource pool of a cluster or host (no_compute_resource).
Place the virtual machine on a host: kyvernon vm relocate <id> --host <host>.
Repeat the operation. When the reason stays, pass on the name of the virtual machine and the reason to an administrator.
error.vm_spec_unbuildable
Text in the console
The configuration of the virtual machine cannot be built on its host. Check the hardware settings and the host's capabilities. The task details name the cause.
Meaning for API clients
The VM configuration cannot be built on the host; the message names the cause.
Cause. The configuration of the virtual machine cannot be turned into a machine on the host. The message of the API response, and the details of the failed task, give the reason that the host reported: a device or setting that the host does not support. The error carries no argument for the cause.
Remedy.
Find the cause: read the message in the response, or open the details of the failed task: kyvernon tasks list --target <id>. The log of the controller holds it too.
Check the hardware settings it names: Edit settings.
Remove or change the device or setting.
When the host is the problem, choose another host: kyvernon vm relocate <id> --host <host>.
error.vm.concurrent_modification
Text in the console
The configuration of the virtual machine changed while you were editing it. Reload the virtual machine and make the change again.
Meaning for API clients
The VM configuration changed since the request's change_version was read and the change cannot be merged; read the VM again and repeat (HTTP 409).
Cause. The configuration of the virtual machine changed after you read it, and your change cannot be merged with the other one. The request carries the change_version that you read, and it is not current.
Remedy.
Read the virtual machine again: reload it in the console, or run kyvernon inventory vm <id>.
Make the change again on the current configuration: kyvernon vm reconfigure <id> --config <file>.
error.vm.exceeds_host_cpu
Text in the console
{requested} vCPUs are more than the {limit} that host {host} allows for one virtual machine. Choose fewer vCPUs.
Meaning for API clients
More vCPUs than the host has logical CPUs (or than vm_ops.max_vcpus_per_vm).
the request field that holds the rejected value, here config.num_cpus.
requested
the number of vCPUs asked for.
limit
the largest number allowed.
host
the name of the host.
Cause. The number of vCPUs is larger than the number of logical CPUs of the host, or larger than the limit max_vcpus_per_vm in the [vm_ops] section of the controller configuration. When that setting is 0, the logical CPUs of the host are the limit.
Remedy.
Choose fewer vCPUs: Edit settings.
Or place the virtual machine on a host with more logical CPUs.
An administrator can raise max_vcpus_per_vm. Pass on the message id and the number that you need.
error.vm.exceeds_host_memory
Text in the console
{requested} MiB of memory are more than the {limit} MiB that host {host} can give one virtual machine. Choose less memory.
Meaning for API clients
More memory (MiB) than the host has after vm_ops.host_memory_reserve_mib.
the request field that holds the rejected value, here config.memory_mib.
requested
the memory in MiB asked for.
limit
the largest amount in MiB.
host
the name of the host.
Cause. The memory is larger than what the host can give one virtual machine: the memory of the host minus the reserve that the host keeps for itself. The reserve is host_memory_reserve_mib in the [vm_ops] section of the controller configuration (2048 MiB by default).
Remedy.
Choose less memory: Edit settings.
Or place the virtual machine on a host with more memory.
An administrator can lower host_memory_reserve_mib. Pass on the message id and the amount that you need.
error.vm.too_many_devices
Text in the console
A virtual machine can have at most {limit} {device, select, cdroms {CD-ROM drives} other {disks and network adapters together}}; this configuration has {count}. Remove devices first.
Meaning for API clients
More disks and network adapters together (device = disks_and_nics), or CD-ROM drives (cdroms), than a virtual machine has slots.
Cause. The configuration has more devices than a virtual machine has slots for. Disks and network adapters together share one limit, and CD-ROM drives have their own. A configuration that is over the limit already can still change, as long as it does not grow.
Remedy.
Remove devices that are not needed: Edit settings.
Repeat the change.
error.no_current_snapshot
Text in the console
The virtual machine has no current snapshot to revert to. Take a snapshot first.
Cause. The template was to be moved to another host or datastore. Templates cannot be relocated.
Remedy.
Convert the template to a virtual machine, relocate it, and convert it back: kyvernon vm mark-as-vm <id>, kyvernon vm relocate <id> --datastore <datastore>, kyvernon vm mark-as-template <id>.
Or clone the template to the destination: kyvernon vm clone <id> --name <name> --datastore <datastore> --template.