Error codes
Every error response carries a machine-readable code. Branch on it: the wording of title may change, the code does not.
HTTP 400 The request could not be read.
invalid_jsonThe request body could not be parsed as JSON.invalid_task_idThe task id is not in the expected form.
HTTP 401 Authentication problem.
invalid_tokenAn Authorization header was present, but the token in it is not one we accept: unknown, revoked, or past its expiry date.token_expiredThe token you sent was valid once, but the expiry date chosen when it was issued has passed.unauthorizedThe request carried no usable credentials: the Authorization header was missing, or it did not use the Bearer scheme.
HTTP 402 Payment problem on the account.
card_verification_requiredCreating a paid resource is refused because the owner of this project has no payment card linked.client_has_debtThe project is still running, but the owner of the project has an invoice past its due date.email_verification_requiredThe account that owns the project has not confirmed its email address, and paid resources are not created until it does.service_suspendedThe project is suspended for non-payment, so no new resource is created.
HTTP 403 Permission problem.
insufficient_privilegesYour token was issued to a team member rather than to the project owner, and the grant that member holds does not include this operation.insufficient_scopeYour token is read-only and this request writes.
HTTP 404 Nothing here by that identifier.
backup_not_foundThe backup id in the path is not a backup of this server.disk_not_foundThe disk id in the path is not a slot on this server.gpu_model_not_foundOne of the card models you named is not offered on this server type, or is no longer sold.gpu_package_not_foundThe GPU package you named does not exist on this server type, or is no longer sold.image_not_foundThe image identifier is not one this project can use here.interface_not_foundThe network interface named in the path is not on this server.ip_not_foundThe public IP address id is not one this project can use for this operation.network_not_foundThe network id is not one of this project's private networks - it does not exist, it was deleted, or it belongs to another project.not_foundThe path is not an endpoint of this API - a typo, a missing /v1 prefix, or an identifier whose shape does not match that resource.plan_not_foundThe plan_id you sent is not a plan of the server type in question.router_rule_not_foundNo rule or port forward with this number exists on the router.server_not_foundThe server id is not a server of this project.server_type_not_foundThe server type id is not one your project may use here.ssh_key_not_foundThe SSH key id does not belong to the account that owns this project - it was never added, it has already been deleted, or it belongs to another customer.task_not_foundThe task id is not a task of this project - it was never issued, or it belongs to another project.vpn_device_not_foundNo device with this identifier exists on this tunnel.
HTTP 405 Wrong method for this path.
method_not_allowedThe path exists but does not support this HTTP method.
HTTP 409 The request is valid, the current state is not.
backup_not_readyYou asked to restore a server from a backup that is not a finished archive.backup_schedule_existsYou asked to put a backup schedule on a server that already has one.backups_disabledYou asked to take a backup of a server whose backups are switched off.disk_lockedYou asked to resize or delete a disk that a snapshot still holds.firewall_changed_concurrentlyThe firewall of this server changed while your request was running - either somebody edited it in the control panel, or the platform did not finish moving a rule your request had just created.firewall_no_public_ifaceYou asked to switch the firewall on for a server that has no public network interface.firewall_rules_unsupportedThis server carries firewall rules that this API cannot express, so replacing the set would silently change what they do.idempotency_in_progressAn earlier request carrying this `Idempotency-Key` is still running, so this one was not executed at all.image_in_useYou asked to delete an image that is currently inserted into one of your servers.image_limit_reachedThe project already holds as many images as it may - three, counted separately for ISO images and for server images.image_not_mountedYou asked to eject an image and the platform found nothing inserted in the server's drive.image_url_add_disabledThis project accepts images only as directly uploaded files, and this API adds images by their address.interface_management_disabledNetwork interface management is switched off for this project, or the single field you sent (`firewall`, `link_down`) is not manageable for it.interface_not_removableYou asked to delete `net0`, the interface the server was created with.ip_in_useThe public IP address is attached to a server.iso_mountedYou asked to delete a disk while an image is inserted into the server's drive.network_has_no_routerYou asked to unlink a router from a network that has none linked.network_has_routerA router is already linked to this network, and you asked for something that requires none: linking a second router, creating a router in it, or changing or deleting the network while the router holds its subnet.network_in_useServers are still attached to this network, and you asked to delete it or to change its subnet.network_is_defaultYou asked to delete the project's default network.network_name_takenAnother network in this project already carries this name.network_not_configuredThe network in this request has no subnet assigned, so a router attached to it could not hand out addresses.no_gpu_capacityThe platform has nothing free that fits the request.quota_exceededThis project has reached the ceiling set for the resource you are creating: servers, public IP addresses, data disks on one server, or private networks.rebuild_disabledReinstalling the operating system is switched off for this project.rebuild_image_unavailableThe image this server was installed from no longer exists, so there is nothing to reinstall it from.router_base_networkYou tried to detach the first private network from a router.router_credentials_forbiddenYou asked to change the administrator password or install SSH keys on a router.router_firewall_forbiddenYou addressed the platform firewall to a router.router_image_forbiddenYou tried to create an image from a router.router_interface_forbiddenYou tried to add, change, or remove a network interface on a router.router_interface_not_foundThe router has no interface with the name you gave.router_iso_forbiddenYou tried to insert or eject an image in a router's drive.router_no_free_interfacesEvery network slot on this router is already in use, so there is nowhere to attach another network.router_not_configuredThe router is missing something the platform needs in order to reach it: a public IP address, or a management key on record.router_not_runningThe router is powered off.router_port_reservedThe public port of the forward covers the port the platform uses to manage the router.router_port_vpnThe public port of the forward covers the port of the router's WireGuard or OpenVPN tunnel, including a tunnel that is currently switched off.router_rename_forbiddenYou sent a name for a router.router_rule_limit_reachedEvery rule number the platform may hand out on this router is taken.router_rule_not_editableThe rule carries conditions this API cannot express - it was written by hand inside the router.router_rule_takenA rule with the priority you asked for already exists on the router.router_scale_forbiddenThe platform refuses to move a router onto a different plan: a router's size comes from its image and is not adjustable afterwards.router_target_is_routerThe target address belongs to the router itself.router_target_not_in_networkThe target address is not inside any private network attached to this router.server_busyAnother operation on this server is already running or is being submitted at this moment - a create, a reinstall, a backup, a disk or plan change, or a second request of your own.server_not_stoppedChanging the plan requires the server to be powered off, and this one is running.service_provisioningYour token is valid, but the project behind it is still being set up and does not accept operations yet.ssh_key_limit_exceededThe keys you sent, added to the keys already installed on this server, would exceed the limit of 20 keys per server.ssh_key_name_takenYou already have a key with this name and different key material.system_disk_not_foundYou asked to resize the system disk, but this server has no bootable system disk right now.tag_limit_reachedThis server already carries the maximum number of tags (10), so the new one was not added.vpn_conflictThe port or the subnet recorded for this tunnel is now used by another interface on the router, so the tunnel cannot be brought back as recorded.vpn_device_limit_reachedThe tunnel already has the maximum number of devices (ten).vpn_device_not_editableThe peer was added inside the router by hand, not through the platform, so there is no device record to rename.vpn_key_existsA device with this public key already exists on the tunnel, on the platform or on the router itself.vpn_no_capacityThe router has no free interface name, port or subnet in the band the platform reserves for tunnels.vpn_not_enabledThe tunnel is switched off or was never switched on, so there is nothing to add a device to.vpn_unmanagedThe tunnel interface on the router does not match what the platform has on record: it was changed inside the router by hand (the key replaced, a second marked interface added, the subnet changed).
HTTP 413 The request body is too large.
payload_too_largeThe request body is larger than 256 KB.
HTTP 415 Wrong content type.
unsupported_media_typeThe request has a body, but its Content-Type is not application/json - most often a form-encoded body produced by an HTTP client's default form helper.
HTTP 422 The request did not pass validation.
conflicting_changesYou asked for more than one resource change in a single server update, or combined a name change with one of them.credentials_requiredYou created a server without a password and without any SSH keys.disk_is_systemThe disk you addressed is the server's system disk.disk_not_extendableThe platform refused to resize the addressed disk because it is not a data disk.disk_shrink_not_allowedThe size_gb you sent is smaller than or equal to the disk's current size.disk_type_not_availableThe storage you asked for does not exist on this server type.disk_type_not_supportedYou sent disk_type to a server type where the storage class of the system disk is part of the type.gpu_count_exceededThe cards you asked for add up to more than one server of this type may hold.gpu_package_not_supportedYou sent gpu_package to a server type that is not sold as a GPU package.gpu_package_requiredYou are creating a server on a type sold as a GPU package, and the request named no package.gpus_not_supportedYou sent gpus to a server type that has no graphics cards to pick from.gpus_requiredYou are creating a server on a type that is sold with graphics cards, and the request named no cards.granularity_too_fineThe window you asked for, split at the requested granularity, would produce more than 750 buckets.idempotency_key_reusedThis Idempotency-Key is already held by a different request.image_minimum_not_metThe image you chose declares minimum cores, memory or disk, and the request asked for less than one of them.image_not_supportedYou asked to create a server from one of your own uploaded ISO images.interface_ips_not_allowedYou sent ips for an interface that is private, or that this request would make private.interface_limit_exceededThe server already has ten network interfaces, the maximum, so another one cannot be added.invalid_cidrThe subnet you sent is not a usable network address.invalid_firewall_ruleOne rule in the set was rejected.invalid_hostnameThe platform did not accept the name you asked for on the server.invalid_idempotency_keyThe Idempotency-Key header itself is malformed.invalid_image_descriptionThe description is longer than 1000 characters, or it contains an angle bracket (< or >).invalid_image_nameThe image name is empty, longer than 50 characters, or contains characters that are not allowed.invalid_image_urlThe url is missing, does not begin with http or https, or is not a well-formed URL.invalid_memorymemory_mb is not a whole number of gigabytes.invalid_nameThe name was rejected: it is empty, too long, or contains characters that are not allowed.invalid_passwordThe administrator password in the request does not meet the platform policy: Latin letters and digits only, and at least one uppercase letter, one lowercase letter and one digit.invalid_public_keyThe public key is not a canonical WireGuard key: 32 bytes encoded as 44 characters of base64.invalid_requestThe request body failed validation: an unknown field, a missing required field, a value of the wrong type or outside the allowed range, a body that is not a JSON object, or a body sent to an endpoint that takes none.invalid_router_ruleThe router rule or port forward was rejected on its content: an unknown action or protocol, a port without a tcp or udp protocol, a malformed address, port or port range, a description that is too long or carries control characters, or a target that is not an IPv4 address.invalid_rule_numberThe priority is outside the band 2000 to 999000, or is not a whole number.invalid_ssh_keyThe public key material you sent is not a valid OpenSSH public key.invalid_tagThe tag is empty, too long, contains characters that cannot occur in a stored tag (control characters or a slash), or begins with the reserved hb- prefix that the platform keeps for its own markers.license_not_acceptedThe image carries a paid Microsoft licence and the request did not accept the SPLA terms.name_requiredYou are creating a server from an ordinary image and the body has no name.network_requiredThe server you are creating would have no network interface at all: the request carries neither public_ipv4 nor any entry in networks.nic_ips_on_create_not_supportedYou sent ips while CREATING a network card.not_a_routerA router-only operation was addressed to a server that is not a router - DHCP settings, the router API key, the router firewall, port forwards or the external address.plan_downgrade_not_allowedThe plan you asked for is smaller than the server's current size in at least one of cores, memory or disk.plan_not_supportedYou sent plan_id to a server type that has no plans.plan_requiredYou are creating a server on a server type that sells ready-made plans, and the body has no plan_id.rebuild_password_not_supportedYou asked to reinstall a server that boots from installer media and sent a password with the request.resource_limit_exceededThe cores, memory or disk size in the request is above the maximum this server type allows.resources_managed_by_packageYou sent cores, memory_mb, disk_gb or plan_id to a server type sold as a GPU package, or asked to add or grow a disk on such a server.resources_managed_by_planYou sent cores, memory_mb or disk_gb to a server type where the size is defined by the plan.router_field_not_supportedA create request using a router image carried a field the platform sets itself: name, cores, memory_mb, disk_gb, plan_id, password, ssh_keys, setup or accept_license.router_network_requiredA create request using a router image did not carry exactly one private network in networks - either none at all, or more than one.router_public_ip_requiredA create request using a router image had no public_ipv4.server_type_not_supportedThe operation does not apply to this server type, or to a router.setup_field_requiredThe image you are deploying is a marketplace application with mandatory setup fields, and the setup object in your request left one of them out.too_many_interfacesThe server being created would end up with more than ten network interfaces once the public address and every requested private network are counted.window_too_largeThe cost window you asked for on GET /v1/project/costs is wider than 400 days.
HTTP 429 Too many requests.
rate_limitedYou have exceeded the per-token allowance for the current minute: 60 reads or 20 writes.
HTTP 500 Something failed unexpectedly on our side.
internal_errorSomething failed on our side while handling a request that was itself valid.
HTTP 503 The request is valid, we could not complete it.
backup_create_failedYour request is correct, but the platform did not accept the backup job for this server.backup_delete_failedThe backup exists and belongs to this server, but the platform did not accept the removal job.backup_list_unavailableThe backup list is read from storage on every request, and this time the scan either failed or did not finish in time.backup_policy_apply_failedThe platform did not finish applying the backup policy: after the write, the policy read back does not match what you asked for.backup_restore_failedThe backup is a finished archive and belongs to this server, but the platform did not accept the restore job.costs_unavailableThe cost figures for this project could not be read.events_unavailableThe server exists and belongs to you, but its event history could not be read.firewall_apply_failedThe platform refused part of the firewall change: setting the options, creating a rule, or removing an old rule failed.firewall_unavailableThe firewall of this server cannot be read right now.image_delete_failedThe image exists in your project and, for an ISO, is not inserted into any server, but the platform did not accept the removal.image_eject_failedThe platform did not eject the image from this server.image_limit_unreadableThe image limit of your project could not be read, so the request was not attempted.image_list_unavailableThe image list is read from storage, and this time the storage did not answer.image_mount_failedThe image you named is one this server accepts, but the platform did not insert it.ip_list_unavailableThe list of the project's public addresses is read on every request that needs it, and this time the platform did not answer.metrics_unavailableThe metrics source did not answer for this server, or it answered with something that is not a series.network_config_unavailableThe network interfaces of this server could not be read.no_free_ipsThere is no free public IPv4 address left in the pool that serves this server type.password_reset_failedThe platform did not accept the password change for this server.platform_disabledThe public API is switched off, or it is in read-only mode and this request writes.router_apply_failedThe router refused to apply the change, or did not answer while applying it.router_unreachableThe router did not answer on its management interface.server_unavailableThe server could not be read or reached right now.ssh_key_install_failedThe keys you named exist in the project and stay within the per-server limit, but the platform did not accept the installation.storage_content_unavailableThe disk configuration of this server could not be read.submission_failedThe request was not handed to the platform, or it was cut off before the platform answered.vpn_revoke_pendingThe device was removed from the platform, but the router did not accept the certificate revocation, so it still accepts that certificate.