Errors
Hyperstack uses standard HTTP status codes. 2xx means success. 4xx means the request was rejected; fix it and retry. 5xx means a Hyperstack-side issue; retry with backoff.
Error response shape
Every error response uses the same JSON envelope:
Error response
{
"status": false,
"message": "Insufficient balance to create the resource",
"error_reason": "bad_request"
}
| Field | Type | Description |
|---|---|---|
status | boolean | false on error. |
message | string | Human-readable description of what went wrong. |
error_reason | string | Machine-readable error category. See the table below. |
A small number of responses omit error_reason, most often the legacy 5xx shape ({"message": "Internal Server Error"}) and some pre-validation 400 responses. Treat the missing-key case as bad_request.
Status codes
| Code | error_reason | When it occurs | Fix |
|---|---|---|---|
400 | bad_request | Request body or parameters failed validation. | Check the request against the endpoint spec. |
401 | unauthorized | API key missing, malformed, or revoked. | Generate a new API key and pass it as the api_key header. See Authentication. |
403 | forbidden | Key lacks permission for the operation, or the resource belongs to a different environment. | Check the key's scope. Some operations require elevated permissions. |
404 | not_found | Resource doesn't exist or isn't visible to this key. IDs are region-scoped: an ID from CANADA-1 isn't visible to a key scoped to NORWAY-1. | Verify the ID with the corresponding List endpoint. |
405 | not_allowed | HTTP method not supported on this path. | Check the spec for the correct method. |
406 | (none) | A query parameter value isn't acceptable. | Check the parameter's allowed values in the spec. |
409 | already_exist | A resource with the same identifying attribute already exists. | Use a unique name, or delete the existing resource first. |
500 | server_error | Hyperstack-side issue. | Retry with backoff. If it persists, contact [email protected]. |
Was this page helpful?