Swarmz

Error reference

Every error the Platform API can return, consolidated. Conventional HTTP codes — 5xx are retryable, 4xx are terminal except 429 and the 409 state codes.

The Platform API uses conventional HTTP status codes. Every error body has an error field and, where it adds detail, a reason.

  • 5xx are server-side and retryable with backoff.
  • 4xx are terminal — the request will not succeed unchanged — except:
    • 429 rate_limited, which means retry later (see Rate limits).
    • the 409 state codes (suspended, account_inactive), which mean retry on the right event — once the tenant is unsuspended or the account is activated.

All errors

Statuserrorreason(s)Source / when
400missing_fieldsexternal_ref required, whu.email required, tenant_id or external_ref required, entitlements required, idempotency_key requiredA required field is absent for the endpoint called
400invalid_emailcreate: whu.email failed validation
400invalid_amountamount must be a positive finite numbertopup: amount non-positive or non-finite
401unauthorizedmissing_bearer, invalid_key, account_missing, account_disabledAuthentication
404tenant_not_foundNo tenant matched the identifier under your account (including after terminate)
404account_not_foundDefensive — your account row was not found
405method_not_allowedAny method other than POST
409account_inactiveaccount statuscreate, sso: your account is not active (e.g. draft)
409suspendedtopup, sso: the tenant is suspended
409tenant_not_activetopup: the tenant is not in an active state
410terminatedThe tenant has been terminated
429rate_limitedper_key, per_ipRate limits
500provision_failedRPC messagecreate failed server-side
500update_failedRPC messageplan failed server-side
500topup_failedRPC messagetopup failed server-side
500suspend_failedRPC messagesuspend failed server-side
500unsuspend_failedRPC messageunsuspend failed server-side
500terminate_failedRPC messageterminate failed server-side
500usage_read_failedworkspace_lookup_failed, credit_transactions_failed, cloud_usage_failedusage failed server-side
500internal_errorhash_failed, lookup_failed, account_lookup_failedAuthentication / sso failed server-side

Treat 404 and 410 the same after terminate

Once a tenant is terminated its workspace row is deleted, so subsequent calls return 404 tenant_not_found rather than 410 terminated. Both mean the service is gone — do not retry either. See Idempotency.

On this page