Errors¶
Every error is a JSON problem (RFC 9457), with Content-Type: application/problem+json:
{
"type": "https://docs.nubestack.com/problems/volume_in_use",
"title": "Volume in use",
"status": 409,
"detail": "Detach the volume from db-1 before deleting it.",
"code": "volume_in_use",
"request_id": "req_01jbx7f3",
"retryable": false
}
- Match on
code. It is stable;titleanddetailare for people and can change.typeis a URL ending in the same code. retryablesays whether the same request can succeed later unchanged.request_ididentifies the request: give it to support.- A
422lists what was wrong inerrors[], each with the field and a reason. - Some refusals add fields that name what is in the way, such as the listeners that serve a certificate.
What to do for each status¶
| Status | Next step |
|---|---|
400 |
Fix the request; for an expired cursor, start the list again |
401 |
The key is unknown, revoked or expired (api_key_invalid) |
403 |
The key's roles do not allow it; or a second factor is needed (second_factor_required) |
404 |
Check the ID, the organization and the project; the key may have no role there |
409 |
Resolve the conflict the code names: something in use, a limit, a reused idempotency key |
412 |
Your version is stale: read again and decide |
422 |
Fix the fields listed in errors[] |
428 |
Send the missing Idempotency-Key or If-Match |
429 |
Wait the seconds in Retry-After, then retry with the same idempotency key |
5xx |
Retry later with the same idempotency key if retryable is true |
A change that was accepted and then failed in the location is not an HTTP error: the
operation ends failed and its failed step says why.
Every error code¶
The codes a customer can receive, generated from the product's catalog. Retry? marks the ones that can succeed later unchanged.
| Code | Meaning | Retry? |
|---|---|---|
account_exists |
Account exists | — |
action_not_assignable |
Action not allowed in a custom role | — |
action_unknown |
Unknown action | — |
address_in_use |
Address in use | — |
allocation_busy |
Allocation busy | Yes |
already_attached |
Already attached | — |
already_connected |
Networks already connected | — |
already_member |
Already a member | — |
already_owner |
Already an owner | — |
api_key_limit |
API key limit reached | — |
api_keys_unavailable |
API keys unavailable | — |
attestation_lapsed |
Too late to keep | — |
audit_export_disabled |
Audit export disabled | — |
audit_lookback_exceeded |
Older than the audit log's look-back | — |
audit_unavailable |
Audit trail unavailable | Yes |
below_in_use |
Below what is in use | — |
budget_exceeded |
Budget exceeded | — |
capability_not_available |
Capability not available | — |
capacity_unavailable |
Capacity unavailable | Yes |
certificate_in_use |
Certificate in use | — |
certificate_limit |
Too many certificates | — |
certificate_not_ready |
Certificate not ready | — |
cidr_overlap |
Address ranges overlap | — |
closure_in_progress |
Closure in progress | — |
conflict |
Conflict | — |
connection_limit |
Connection limit reached | — |
connections_retired |
Connections are retired | — |
console_not_offered |
No console in this location | — |
console_not_ready |
Console not ready | Yes |
console_not_registered |
Console not registered | — |
console_sign_in_required |
Console sign-in required | — |
credential_limit |
Credential limit reached | — |
csrf_failed |
Cross-site request refused | — |
default_security_group |
Default security group | — |
deletion_in_progress |
Deletion in progress | — |
deletion_irreversible |
Deletion irreversible | — |
entitlement_cap |
Too many projects in one cloud for this person | — |
export_in_progress |
Export being prepared | — |
export_not_ready |
Export not ready | — |
export_too_large |
Export too large | — |
forbidden |
Forbidden | — |
forwarding_limit |
Too many address pairs | — |
forwarding_overlaps_network |
Range overlaps a network | — |
gateway_in_use |
Internet gateway in use | — |
gateway_region_mismatch |
Private router in another region | — |
grant_from_group |
This access comes from a group | — |
grant_required |
Project access required | — |
groups_not_enabled |
Groups are not enabled yet | — |
has_own_gateway |
Network has its own gateway | — |
idempotency_key_in_progress |
Request in progress | Yes |
idempotency_key_required |
Idempotency key required | — |
idempotency_key_reused |
Idempotency key reused | — |
image_incompatible |
Image does not fit this size | — |
image_not_active |
Image not active | — |
image_protected |
Image is protected | — |
image_volume_backed |
Instance boots from a volume | — |
instance_group_limit |
Too many instance groups | — |
instance_group_name_taken |
Instance group name taken | — |
integrity_unavailable |
Integrity check unavailable | Yes |
internal_error |
Internal error | — |
internet_access_off |
Internet access already off | — |
internet_access_on |
Internet access already on | — |
invalid_access_rules |
Invalid access rules | — |
invalid_cidr |
Invalid CIDR | — |
invalid_cursor |
Invalid cursor | — |
invalid_ephemeral_key |
Invalid one-time key | — |
invalid_id |
Invalid identifier | — |
invalid_instant |
Invalid time | — |
invalid_public_key |
Invalid public key | — |
invalid_server |
Invalid instance | — |
invalid_size |
Invalid size | — |
invalid_time_zone |
Unknown time zone | — |
invalid_window |
Invalid time window | — |
invitation_domain |
Invitation domain not allowed | — |
invitation_email_mismatch |
Invitation e-mail mismatch | — |
invitation_not_pending |
Invitation not pending | — |
invitation_pending |
Invitation pending | — |
inviter_not_permitted |
Inviter may no longer give this role | — |
key_already_rotated |
API key already rotated | — |
last_location |
Last location | — |
last_owner |
Last owner | — |
launch_template_in_use |
Launch template in use | — |
launch_template_invalid |
Launch template version unreadable | — |
launch_template_limit |
Too many launch templates | — |
launch_template_name_taken |
Launch template name taken | — |
launch_template_version_limit |
Too many versions of this launch template | — |
lb_child_in_use |
Listener or pool still has dependencies | — |
lb_child_limit |
Listener or pool limit reached | — |
lb_feature_unsupported |
Load balancer feature unsupported | — |
lb_listener_conflict |
A listener already uses this port | — |
lb_member_address_scope |
Member network is in another address scope | — |
lb_member_address_unsafe |
Member address cannot be used | — |
lb_member_ambiguous |
Member target is ambiguous | — |
lb_member_family_mismatch |
Member address family not supported | — |
lb_member_floating_ip |
Member address is a public IP | — |
lb_member_outside_project |
Member address is not the project's | — |
lb_member_unreachable |
Member network is not routed to the load balancer | — |
lb_provider_unavailable |
Load balancer type not available here | — |
legal_hold |
Under legal hold | — |
location_maintenance |
Location in maintenance | Yes |
location_mismatch |
Location mismatch | — |
location_not_accepting |
Location not accepting new resources | — |
location_not_found |
Location not found | — |
location_not_placed |
Location not placed | — |
location_unavailable |
Location temporarily unavailable | Yes |
mapping_not_admitted |
Not admitted by the cloud's conformance | — |
member_not_active |
Member not active | — |
multi_region_networking_unsupported |
Networking in several regions not supported | — |
network_attached |
Network is attached | — |
network_has_no_subnet |
Network has no subnet | — |
network_has_range |
Network already has its range | — |
network_no_internet_access |
Network has no Internet access | — |
network_topology_unsupported |
Network topology not supported | — |
no_deletion |
No deletion | — |
not_an_increase |
Not an increase | — |
not_attached |
Not attached | — |
not_blocked |
Not waiting for confirmation | — |
not_cancellable |
Not cancellable | — |
not_dismissible |
Not dismissible | — |
not_flagged |
Nothing to keep | — |
not_found |
Not found | — |
not_ready |
Not ready | Yes |
not_resumable |
Not resumable | — |
observation_required |
A fresh resource reading is required | — |
offering_already_active |
Offering already offered | — |
offering_already_retired |
Offering already retired | — |
offering_exists |
Offering already exists | — |
offering_in_use |
Offering in use | — |
offering_not_found |
Offering not found | — |
offering_retired |
Offering retired | — |
org_cap_exceeded |
Organization ceiling reached | — |
org_closing |
Organization being closed | — |
org_not_closing |
Organization not closing | — |
org_suspended |
Organization suspended | — |
own_membership |
Not on your own membership | — |
own_roles_raise |
You cannot raise your own roles | — |
period_out_of_range |
No costs for that month | — |
personal_service_account |
Answers to its owner alone | — |
personal_service_account_exists |
You have a personal service account here | — |
placement_deleting |
Location is being deleted | — |
placement_not_active |
Placement not active | — |
placement_not_ready |
Placement not ready | — |
placement_suspended |
Placement suspended | — |
platform_read_only |
Platform read-only | Yes |
port_security_disabled |
Port security is off | — |
precondition_failed |
Precondition failed | — |
precondition_required |
Precondition required | — |
preset_is_default |
Preset is the default | — |
project_limit |
Project limit reached | — |
public_ip_associated |
Public IP already associated | — |
public_ips_in_use |
Public IPs in use | — |
quota_exceeded |
Quota exceeded | — |
quota_in_use |
Still in use | — |
quota_request_open |
A request is already waiting | — |
range_not_private |
Range is not private | — |
range_overlap |
Range overlaps an attached network | — |
range_required |
Range required | — |
rate_limited |
Too many requests | — |
reference_not_found |
Reference not found | — |
refresh_limit |
Too many open refreshes | Yes |
rekey_needs_maintenance |
A rekey code needs the cloud in maintenance | — |
report_stale |
Report out of date | — |
resource_busy |
Resource busy | Yes |
resource_changed |
Resource changed; refresh before trying again | — |
resource_class_managed |
Set by NubeStack Cloud | — |
resource_class_reserved |
Resource class reserved | — |
resource_deleting |
Resource being deleted | — |
resource_exists |
Already there | — |
resource_gone |
Not there | — |
resource_in_use |
Resource in use | — |
resources_present |
Resources present | — |
restore_type_incompatible |
Volume type cannot take this snapshot | — |
restore_type_unknown |
Snapshot's volume type unknown | — |
role_escalation |
Not an action you hold | — |
role_held_by_service_account |
Role held by a service account | — |
role_in_use |
Role still held | — |
role_limit |
Role limit reached | — |
role_name_taken |
Role name taken | — |
role_not_allowed |
Role not allowed for a service account | — |
role_unavailable |
Role not usable here | — |
route_uses_network |
A route uses this network | — |
router_managed |
Router managed by NubeStack Cloud | — |
schedule_limit |
Too many schedules | — |
second_factor_required |
Second factor required | — |
secret_not_ready |
Secret not ready | Yes |
secret_store_unavailable |
Secret store unavailable | Yes |
security_group_in_use |
Security group in use | — |
security_group_name_taken |
Security group name taken | — |
server_group_in_use |
Server group in use | — |
server_state |
Instance not in a state for this action | — |
service_account_exists |
Service account name taken | — |
service_account_limit |
Service account limit reached | — |
snapshot_not_available |
Snapshot not available | — |
snapshot_restore_pending |
A volume is being made from this snapshot | — |
ssh_key_exists |
SSH key exists | — |
ssh_key_limit |
SSH key limit | — |
step_up_required |
Step-up required | — |
subnet_limit |
Subnet limit reached | — |
tag_keys_limit |
Too many tag keys | — |
topology_view_changed |
Topology changed; start again from the first page | — |
unauthenticated |
Authentication required | — |
unit_mismatch |
Unit mismatch | — |
unknown_quota_profile |
Unknown quota profile | — |
unknown_resource_class |
Unknown resource class | — |
usage_detail_expired |
Hourly usage no longer kept | — |
usage_range_too_large |
Usage range too large | — |
validation_failed |
Validation failed | — |
value_out_of_range |
Value out of range | — |
volume_has_snapshots |
Volume has snapshots | — |
volume_in_use |
Volume in use | — |
volume_state |
Volume not in a state for this action | — |
Everyday cases in plain words are in Troubleshooting.