Expanse API
Sign up
Reseller API

Errors

Every error code, HTTP status and client recovery action.

Error envelope

Example
{ "error": { "code": "cap_exceeded", "message": "This VM would exceed the reseller account limits." } }

Error codes

CodeHTTPMeaning and client action
internal_error500Unexpected failure: verify state before retrying; contact support.
api_key_required401Supply rk_ bearer.
invalid_api_key401Replace invalid/revoked key.
ip_not_allowed403Check egress IP/allowlist.
key_revoked409Key revoked during work; replace.
insufficient_scope403Create key with required scope.
not_a_reseller403Account disabled/not reseller; contact operator.
reseller_not_configured503Missing provider/catalog setup; contact operator.
invalid_request400Correct JSON/values/unknown fields.
disk_shrink_not_allowed400Keep/increase disk.
invalid_location400Refresh granted locations.
not_found404Unknown/foreign resource; verify ID.
cap_exceeded409Free capacity/request higher caps; also webhook count.
invalid_state409Refresh VM state.
vm_busy409Wait Retry-After: 30, recheck.
not_available404Password absent/consumed/expired/SSH login; use stored credential or reset.
feature_not_available409Feature disabled/unsupported; inspect account features.
resize_partial409Partial resize: inspect vm/changed, reconcile before repeating.
resize_pending409Resize unconfirmed: poll/wait for reconciliation.
provider_error502Provider failure: back off reads, verify mutations before repeating.
rate_limited429Honor Retry-After, back off.

Lifecycle errors

HTTPCodeMeaning
400invalid_requestMalformed resize, out-of-range sizes, or no resource change
400disk_shrink_not_allowedRequested disk smaller than current disk
404not_foundVM does not exist in the caller's account
409cap_exceededResize would exceed an account cap
409invalid_stateVM is unavailable for the operation or needs reconciliation
409vm_busyProvider rejected an operation with 423; retry later
502provider_errorProvider rejected resize or rescue; no provider payload exposed

All routes retain standard authentication, scope and rate-limit errors. Stats provider failures return HTTP 200 with nullable metrics, not provider_error.