Reference For: administrators, users, tenants

IP pool errors

Causes and remedies for the error codes of IP pools and public addresses.

error.ip_pool.exhausted

Text in the console
Pool {pool} has no free address left.
Meaning for API clients
The IP pool has no free address (or /64) left.
Code
depends on the cause
ArgumentWhat it holds
poolthe name of the pool that is full, empty when no pool was named.

Cause. The pool has no free IPv4 address, or no free IPv6 block, left. Addresses that are allocated, reserved or in quarantine do not count as free. When no pool is named, no pool on the networks of the virtual machine has a free address.

Remedy.

  1. Check the free addresses: kyvernon ip-pools available <pool>.
  2. Return addresses that are no longer used: kyvernon ip-pools free <pool> <address>. A returned address becomes free again after the quarantine period.
  3. Extend the ranges of the pool: kyvernon ip-pools update <pool> --range <first>-<last>. The ranges that you give replace the existing ones, so name every range the pool should have. Ranges must not overlap another pool.
  4. Pass on the message id and the name of the pool to an administrator when you cannot change the pool yourself.

error.ip_pool.address_in_use

Text in the console
{address} is already allocated.
Meaning for API clients
The requested address is allocated already.
Code
ALREADY_EXISTS, HTTP 409
ArgumentWhat it holds
addressthe address that is allocated already.

Cause. The address was assigned to another network adapter between listing and assigning.

Remedy.

  1. List the free addresses again: kyvernon ip-pools available <pool>.
  2. Assign one of the listed addresses, or assign without naming an address to take the first free one: kyvernon ip-pools allocate <pool> --vm <vm>.

See the page IP pools.

error.ip_pool.address_quarantined

Text in the console
{address} was released recently and is still in quarantine.
Meaning for API clients
The address was released recently and is in quarantine.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
addressthe address that is in quarantine.

Cause. The address was released recently and is in quarantine. A released address is not handed out again for 14 days, unless the pool uses another period (--quarantine-s).

Remedy.

  1. Choose another free address: kyvernon ip-pools available <pool>.
  2. Or wait until the quarantine ends. kyvernon ip-pools allocations <pool> lists the quarantined addresses with the time they end.

error.ip_pool.primary_exists

Text in the console
The network card {mac} already has a primary address in this pool; ask for an extra address.
Meaning for API clients
The NIC already has a primary address in this pool; ask for an extra one.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
macthe MAC address of the network adapter.

Cause. The network adapter has a primary address in this pool already. A network adapter has one primary address per pool.

Remedy.

  1. To add another address to the adapter, allocate an extra one: kyvernon ip-pools allocate <pool> --vm <vm> --mac <mac> --extra.
  2. To replace the primary address, return it first: kyvernon ip-pools free <pool> <address>, then allocate a new one.

error.ip_pool.no_ipv6

Text in the console
This pool has no IPv6 prefix.
Meaning for API clients
The IP pool has no IPv6 prefix.
Code
FAILED_PRECONDITION, HTTP 412

Cause. An IPv6 block was requested from a pool that has no IPv6 prefix.

Remedy.

  1. Allocate from a pool that has an IPv6 prefix, or allocate an IPv4 address only.
  2. An administrator adds an IPv6 prefix to the pool: kyvernon ip-pools update <pool> --ipv6-prefix <prefix> --ipv6-gateway <gateway>, for example with the documentation prefix 2001:db8:7700::/48.

error.ip_pool.overlap

Text in the console
The ranges overlap pool {pool}.
Meaning for API clients
The ranges overlap another IP pool.
Code
INVALID_ARGUMENT, HTTP 400
ArgumentWhat it holds
fieldthe request field that holds the rejected ranges.
poolthe name of the pool that the ranges overlap.

Cause. A range of the pool overlaps a range of another pool that is on the same network. A public address can belong to one pool only.

Remedy.

  1. Compare the ranges of both pools: kyvernon ip-pools get <pool>. The message names the pool that overlaps.
  2. Change the range so that it does not overlap, or remove the overlapping range from the other pool.

error.ip_pool.in_use

Text in the console
Pool {pool} still has allocations.
Meaning for API clients
The IP pool still has allocations.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
poolthe name of the pool.

Cause. The pool cannot be deleted while it has allocations, either IPv4 addresses or IPv6 blocks.

Remedy.

  1. List the allocations: kyvernon ip-pools allocations <pool>.
  2. Return each one: kyvernon ip-pools free <pool> <address>. For a block, give <prefix>/64.
  3. Delete the pool: kyvernon ip-pools delete <pool>. Addresses in quarantine do not block the deletion.

error.ip_pool.not_allocated

Text in the console
{address} is not allocated here.
Meaning for API clients
The address is not allocated in the pool (or not the VM's).
Code
NOT_FOUND, HTTP 404
ArgumentWhat it holds
addressthe address that is not allocated.

Cause. The address is not allocated in the pool, or it is allocated to another virtual machine than the one that you named.

Remedy.

  1. List the allocations of the pool: kyvernon ip-pools allocations <pool>, or the addresses of the virtual machine: kyvernon addresses list <vm>.
  2. Repeat the operation with an address that is allocated.

error.ip_pool.no_nic

Text in the console
Virtual machine {vm} has no network card on network {network}.
Meaning for API clients
The VM has no NIC on the IP pool's network.
Code
FAILED_PRECONDITION, HTTP 412
ArgumentWhat it holds
networkthe id of the network of the pool.
vmthe id of the virtual machine.

Cause. An address was to be bound to a network adapter of a virtual machine, but the virtual machine has no network adapter on the network of the pool.

Remedy.

  1. Add a network adapter on the network of the pool to the virtual machine: Edit settings.
  2. Or name a pool on a network that the virtual machine uses.
  3. Allocate again: kyvernon ip-pools allocate <pool> --vm <vm>.

error.ip_pool.ipv6_block_len

Text in the console
The IPv6 block per server must be /64 to /128.
Meaning for API clients
The IPv6 block length per server must be 64 to 128.
Code
INVALID_ARGUMENT, HTTP 400
ArgumentWhat it holds
fieldthe request field that holds the rejected value.

Cause. The IPv6 block that each server gets is shorter than /64 or longer than /128.

Remedy.

  1. Set the block length to a value from 64 to 128: kyvernon ip-pools update <pool> --ipv6-block-len 64.
  2. Use a /112 per server when the provider gives a single on-link /64.

error.ip_pool.ipv6_layout_in_use

Text in the console
The IPv6 prefix and block length cannot change while blocks are allocated or in quarantine.
Meaning for API clients
The IPv6 prefix and block length cannot change while blocks are allocated or in quarantine.
Code
INVALID_ARGUMENT, HTTP 400
ArgumentWhat it holds
fieldthe request field that holds the rejected change.

Cause. The IPv6 prefix or the block length of the pool cannot change while blocks are allocated or in quarantine.

Remedy.

  1. Return every IPv6 block of the pool: kyvernon ip-pools free <pool> <prefix>/64.
  2. Wait until the quarantine of the returned blocks ends, then change the prefix or the block length.
  3. Or create a new pool with the new layout and move the servers to it.

Version 0.1. Last changed: 2026-11-13