Reference For: administrators, users

Datastore errors

Causes and remedies for the error codes of datastores, datastore files, uploads and disk images.

error.datastore.not_shareable

Text in the console
Datastore {datastore} cannot be mounted on or unmounted from a single host. Remove it instead, or choose an NFS datastore.
Meaning for API clients
The datastore cannot be mounted on or unmounted from a single host: an iSCSI (VMFS-like) datastore belongs to one host, a local datastore to its own.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
datastorethe name of the datastore.

Cause. A datastore was to be mounted on a host, or unmounted from one host, that cannot share it. A datastore on an iSCSI LUN (the VMFS-like type) is a file system of one host and cannot be moved between hosts this way. A local datastore is a directory of its own host and can only be mounted there again.

Remedy.

  1. To stop using an iSCSI datastore, remove it: kyvernon host remove-datastore <id> <ds-id>, or from every host: kyvernon datastore remove <ds-id>.
  2. To share storage between hosts, use an NFS datastore and mount it on each host: kyvernon host mount-datastore <id> <ds-id>.

error.datastore.insufficient_space

Text in the console
Datastore {datastore} has room for {available} bytes; {requested} bytes were asked for. Choose a smaller disk or another datastore.
Meaning for API clients
A new or grown disk asks for more bytes than the datastore has free (thick) or than the thin-disk cap.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
requestedthe bytes that the operation asks for.
availablethe bytes that the datastore, or the thin-disk limit, can give.
datastorethe name of the datastore.

Cause. A new or grown disk asks for more bytes than the datastore has free (thick disks), or more than the largest thin disk that is allowed. That limit is max_thin_disk_gib in the [vm_ops] section of the controller configuration, or the capacity of the datastore when the setting is 0.

Remedy.

  1. Choose a smaller disk size, or a datastore with more free space.
  2. Free space on the datastore: delete files that nothing uses. kyvernon datastore orphans <id> lists disk images that no virtual machine, template or snapshot references.
  3. For thin disks, an administrator can raise max_thin_disk_gib. Pass on the message id and the name of the datastore.

error.image_in_use

Text in the console
The image file still backs the virtual machine {vm}. Delete or move that virtual machine first.
Meaning for API clients
The image file backs a VM.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
vmthe id of the virtual machine whose disk the file is.

Cause. A disk was to be made from an image file that is still the disk of another virtual machine. Copying or linking the file of a virtual machine that is running or suspended, or any linked clone of it, is refused.

Remedy.

  1. Power off the virtual machine that holds the file, or delete that virtual machine when it is no longer needed.
  2. Make the disk from a template, or clone the virtual machine instead of its file.
  3. Repeat the operation.

error.datastore_bad_path

Text in the console
The path is not valid: it must be relative, below the datastore root and not empty. Correct the path.
Meaning for API clients
The datastore path is empty, absolute, or escapes the root.
Code
INVALID_ARGUMENT, HTTP 400
ArgumentWhat it holds
fieldthe request field that holds the rejected path.

Cause. The path on the datastore is empty, absolute, contains .. or an internal name, or would leave the root folder of the datastore. The root itself cannot be deleted.

Remedy.

  1. Give a path that is relative to the root of the datastore, for example images/disk1.qcow2.
  2. Do not start the path with / and do not use ...

error.datastore_file_exists

Text in the console
A file or folder with that name already exists. Choose another name, or allow overwriting.
Meaning for API clients
The file or folder exists (use overwrite).
Code
ALREADY_EXISTS, HTTP 409

Cause. A file or folder with that name exists already at the destination.

Remedy.

  1. Choose another name, or remove the existing file when it is no longer needed: kyvernon datastore rm <id> <path>.
  2. To replace the file on purpose, repeat the operation with overwriting allowed: kyvernon datastore upload <id> <file> --overwrite, or --overwrite with cp and mv.

error.datastore_file_not_found

Text in the console
The file does not exist on the datastore. It may have been removed. Refresh the list.
Meaning for API clients
No such file on the datastore.
Code
NOT_FOUND, HTTP 404

Cause. The file does not exist on the datastore. It may have been moved or removed, or the datastore name is wrong.

Remedy.

  1. List the folder: kyvernon datastore ls <id> <path>. In the console, refresh the file list with Refresh.
  2. Repeat the operation with the path as listed.

error.datastore_folder_not_found

Text in the console
The folder does not exist on the datastore. It may have been removed. Refresh the list.
Meaning for API clients
No such folder on the datastore.
Code
NOT_FOUND, HTTP 404

Cause. The folder does not exist on the datastore, or the path leads to a file where a folder was expected.

Remedy.

  1. List the parent folder: kyvernon datastore ls <id> <path>.
  2. Create the folder, with its parents: kyvernon datastore mkdir <id> <path>. In the console, use New folder.

error.datastore_folder_not_empty

Text in the console
The folder still contains files. Delete its contents first.
Meaning for API clients
The folder still has entries.
Code
FAILED_PRECONDITION, HTTP 412

Cause. The folder still holds files or folders, and a folder can be deleted only when it is empty.

Remedy.

  1. List the content: kyvernon datastore ls <id> <path>.
  2. Delete the files in it first: kyvernon datastore rm <id> <path>/<name>.
  3. Delete the folder.

error.datastore_file_in_use

Text in the console
The file backs a disk of the virtual machine {vm}. Remove the disk from that virtual machine first.
Meaning for API clients
The file backs a VM disk.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
vmthe name of the virtual machine that uses the file.
vmIdthe id of that virtual machine.

Cause. The file or folder holds a disk of a virtual machine, or of a snapshot of one. Kyvernon refuses to delete or overwrite such files.

Remedy.

  1. Remove the disk from that virtual machine, or delete the virtual machine, when the data is no longer needed.
  2. Repeat the operation.

error.datastore_upload_too_large

Text in the console
The upload exceeds the limit of {limit} bytes. Split the file, or ask an administrator to raise the limit.
Meaning for API clients
The upload exceeds limit bytes (HTTP 413).
Code
RESOURCE_EXHAUSTED, HTTP 413
ArgumentWhat it holds
limitthe upload limit in bytes.

Cause. The file is larger than the upload limit of the controller. The limit is max_upload_bytes in the [files] section of the controller configuration. The value 0 means no limit.

Remedy.

  1. Split the file, or put it on the datastore another way, for example by copying it on the host.
  2. An administrator can raise max_upload_bytes and restart the controller. Pass on the message id and the size of the file.

error.datastore_upload_incomplete

Text in the console
The upload ended before the whole file arrived. Upload the file again.
Meaning for API clients
The upload ended before Content-Length bytes.
Code
INVALID_ARGUMENT, HTTP 400

Cause. The upload ended before the number of bytes announced in Content-Length had arrived. The connection broke, or the client stopped early.

Remedy.

  1. Upload the file again: kyvernon datastore upload <id> <file> --path <path> --overwrite.
  2. On an unstable connection, upload from a machine with a better connection to the controller.

error.datastore_read_only

Text in the console
The datastore refuses writes. Choose another datastore, or ask an administrator to make it writable.
Meaning for API clients
The datastore refuses writes.
Code
FAILED_PRECONDITION, HTTP 412

Cause. The datastore refuses writes. It is mounted read-only, or its pool is marked read-only.

Remedy.

  1. Choose another datastore.
  2. An administrator makes the datastore writable, or mounts it read-write. Pass on the name of the datastore.

error.datastore_range_invalid

Text in the console
The requested part of the file does not exist. Download the whole file.
Meaning for API clients
The Range header cannot be satisfied (HTTP 416).
Code
INVALID_ARGUMENT, HTTP 416

Cause. The Range header of a download asks for bytes that are beyond the end of the file.

Remedy.

  1. Download the whole file: kyvernon datastore download <id> <path> --to <local-path>.
  2. API clients that resume a download set the start of the range below the size of the file, which they read first.

error.datastore_inaccessible

Text in the console
Datastore {datastore} is not accessible from its hosts. Check the storage connection of the hosts.
Meaning for API clients
The datastore is not accessible from its hosts.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
datastorethe name of the datastore.

Cause. The datastore is marked as not accessible from its hosts, or it has no file path that the controller can use.

Remedy.

  1. Check the storage connection of the hosts that mount the datastore: the mount, the network path, and the state of the storage server.
  2. Restore the connection. The datastore becomes accessible again when a host reports it.
  3. Pass on the message id and the name of the datastore when you cannot reach the storage yourself.

error.datastore_no_host

Text in the console
No connected host mounts datastore {datastore}. Connect a host that mounts it.
Meaning for API clients
No connected host mounts the datastore.
Code
depends on the cause
ArgumentWhat it holds
datastorethe name of the datastore.

Cause. No host that is connected to the controller mounts the datastore, so no host can read or write its files.

Remedy.

  1. Check which hosts mount the datastore: kyvernon inventory datastore <id>.
  2. Connect a host that mounts it, or mount the datastore on a connected host. An administrator reconnects a host with kyvernon host reconnect <id>.

error.datastore_not_on_host

Text in the console
The chosen host does not mount datastore {datastore}. Choose another host or datastore.
Meaning for API clients
The chosen host does not mount the datastore.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
datastorethe id of the datastore.

Cause. A disk was placed on a datastore that the chosen host does not mount.

Remedy.

  1. Choose a datastore that the host mounts, or choose a host that mounts the datastore.
  2. Repeat the operation.

error.datastore_not_shared

Text in the console
The operation needs a datastore shared by both hosts. Choose a shared datastore.
Meaning for API clients
The operation needs a datastore shared by both hosts.
Code
FAILED_PRECONDITION, HTTP 412

Cause. The operation moves a running virtual machine to another host, which needs a datastore that both hosts mount. Moving a virtual machine together with its disks to a host that does not mount the datastore is not offered.

Remedy.

  1. Choose a datastore that both hosts mount.
  2. Power the virtual machine off and relocate it with a datastore of the destination host: kyvernon vm relocate <id> --host <host> --datastore <datastore>.

Version 0.1. Last changed: 2026-11-13