The Redpanda Cloud API uses HTTP codes to indicate the status of a request. The response payload also includes additional error codes and descriptions that provide more detail about why an operation failed.
Example request:
curl https://api.redpanda.com/v1/clusters | jq
Example response:
{
"code": "UNAUTHENTICATED",
"message": "Bearer token is not present",
"details": [
{
"@type": "google.rpc.ErrorInfo",
"reason": "REASON_NO_TOKEN",
"domain": "redpanda.com/controlplane",
"metadata": {}
},
{
"@type": "google.rpc.Help",
"links": [
{
"description": "Please ensure you have a valid token to authenticate against the API. If you don't have a token, create a client and follow the instructions to request a token.",
"url": "https://cloud.redpanda.com/clients"
}
]
}
]
}
HTTP response codes
A 2xx
HTTP status code indicates that a request is successful:
200
OK. Request was successful.201
Created. The requested resource was successfully created.202
Accepted. The request is accepted and is processing, for example for a long-running operation.204
No content. Usually returned by a successful delete request.
The following HTTP status codes indicate errors:
400
Bad request. There is an error that must be fixed in the request, such as an invalid parameter value. Attempt the request again after it is fixed.401
Unauthenticated. The authentication credentials are missing or invalid.404
Not found. The specified resource was not found.409
Conflict. Usually returned when the resource to be created by the request already exists.500
Internal server error. Reach out to Redpanda support.
Error codes and details
The response payload contains additional error details: a gRPC status code, and an error message that contains further details.
The Control Plane API returns a set of possible error codes that are mostly distinct from the possible Data Plane API error codes.
Control Plane API error codes
Reason | Description |
---|---|
REASON_ZONE_NOT_SUPPORTED_BY_NETWORK | Cluster zones must be a subset of network zones. |
REASON_INSUFFICIENT_QUOTA | Insufficient quota to create requested resource. |
REASON_DISABLING_MTLS_NOT_SUPPORTED | Disabling mTLS is not supported. |
REASON_UNSUPPORTED_VERSION | The requested Redpanda version is not supported. |
REASON_NETWORK_ALREADY_EXISTS | Network name is already in use by another network within the organization. |
REASON_REGION_NOT_FOUND | Region with given name not found. |
REASON_NO_TOKEN | No token provided. |
REASON_TOKEN_EXPIRED | Provided API token has expired. |
REASON_TOKEN_INVALID | Provided API token is invalid. |
REASON_CLUSTER_TYPE_MISMATCH | Cluster type and specified network do not match. |
REASON_ONLY_ONE_CLUSTER_PER_NETWORK_ALLOWED | Only one cluster per network is allowed. Placing additional clusters is not yet supported. This restriction will be lifted in the future. |
REASON_INVALID_INPUT | Generic input validation error. Refer to BadRequest error details. |
REASON_NETWORK_NOT_READY | Network is not in READY state, which is required to create a cluster. |
REASON_CLUSTER_NETWORK_REGION_MISMATCH | Cluster and specified network region do not match. |
REASON_THROUGHPUT_TIER_NOT_FOUND | Requested throughput tier does not exist. |
REASON_RESOURCE_GROUP_NOT_EMPTY | Namespace already contains resources. |
REASON_CLUSTER_NETWORK_CLOUD_PROVIDER_MISMATCH | Cluster and specified network have different cloud providers. |
REASON_THROUGHPUT_TIER_NOT_AVAILABLE_IN_REGION | Requested throughput tier not available in specified region or cluster type. |
REASON_CLOUD_PROVIDER_STOCKOUT | Cloud provider lacks capacity for the requested machine type. |
REASON_CLOUD_PROVIDER_MACHINE_TYPE_UNSUPPORTED_IN_ZONE | Cloud provider does not support the machine type in specified zone. |
REASON_CLOUD_PROVIDER_QUOTA_EXCEEDED | Cloud provider quota has been exceeded. |
REASON_NETWORK_CONTAINS_CLUSTERS | Network still contains clusters. Only empty networks can be deleted. |
REASON_RATE_LIMIT_EXCEEDED | Rate limit exceeded. Reduce request rate. |
REASON_INVALID_PAGE_TOKEN | Provided page token is invalid. |
REASON_PAGE_TOKEN_FILTER_MISMATCH | Page token filter does not match. |
REASON_PRODUCT_NOT_SUPPORTED_BY_SUBSCRIPTION | Current subscription does not support the requested product. |
REASON_NOT_AVAILABLE_CAPACITY_FOR_CLOUD_PROVIDER | Not enough capacity for the requested cloud provider. |
REASON_RESOURCE_GROUP_NOT_FOUND | Namespace not found. |
REASON_RESOURCE_GROUP_ALREADY_EXISTS | Namespace already exists. |
REASON_REMOTE_REPLICA_NOT_FOUND | Target cluster not found. |
REASON_REMOTE_REPLICA_INVALID_ORGANIZATION | Remote read replica cluster does not match a valid organization. |
REASON_REMOTE_REPLICA_INVALID_STATE | Remote read replica cluster is in invalid state. |
REASON_REMOTE_REPLICA_INVALID_CLOUD_PROVIDER | Remote read replica cluster has invalid cloud provider. |
REASON_REMOTE_REPLICA_INVALID_CLOUD_ACCOUNT | Remote read replica cluster has invalid cloud account. |
REASON_REMOTE_REPLICA_INVALID_REGION | Remote read replica cluster has invalid region. |
REASON_REMOTE_REPLICA_INVALID_VERSION | Remote read replicas cluster has invalid version. |
REASON_REMOTE_REPLICA_INVALID_TYPE | Remote read replicas cluster has invalid type. |
REASON_REMOTE_REPLICA_SAME_AS_SOURCE | Remote read replica cannot be the same as the source cluster. |
REASON_REMOTE_REPLICA_CYCLE | Remote read replica may not list the source cluster as a replica of itself. |
REASON_REMOTE_REPLICA_INVALID_DELETION | Source cluster cannot be deleted if it has read replicas. |