Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Error Handling
This section describes how errors are returned by the Zerobus Ingest API and how clients should handle them.
Error Response Format
REST (JSON)
Error responses are returned as JSON with an appropriate HTTP status code:
{
"error_code": "NOT_FOUND",
"message": "Table \"catalog.schema.table\" cannot be found."
}
| Field | Type | Description |
|---|---|---|
| error_code | string | A machine-readable error code identifying the category of failure. Use this to determine how to handle the error programmatically. |
| message | string | A human-readable description of the error. May include additional diagnostic information for troubleshooting. Do not parse this field programmatically — its format may change without notice. |
gPRC
Error responses use standard gRPC status codes, delivered via response trailers:
| Trailer | Description |
|---|---|
| grpc-status | A numeric status code (e.g., 3 for INVALID_ARGUMENT). Use this to determine how to handle the error programmatically. |
| grpc-message | A human-readable description of the error. May include additional diagnostic information for troubleshooting. Do not parse this field programmatically — its format may change without notice. |
Error Codes
The following table lists all error codes returned by the Zerobus Ingest API, their corresponding protocol-level codes, and recommended client behavior.
Client Errors
These errors indicate a problem with the request. Do not retry without modifying the request.
| Error Code (REST) | gRPC Code | HTTP Status | Description | Recommended Action |
|---|---|---|---|---|
INVALID_PARAMETER_VALUE |
INVALID_ARGUMENT(3) |
400 | The request contains invalid or malformed input, such as a missing required field, an invalid schema, or an unsupported record format. | Fix the request and resubmit. Inspect the message field for details on which parameter is invalid. |
NOT_FOUND |
NOT_FOUND(5) |
404 | The requested resource does not exist. For example, the specified table cannot be found. | Verify that the resource name is correct and that it exists. |
NOT_IMPLEMENTED |
UNIMPLEMENTED(12) |
501 | The requested operation is not supported. For example, the table uses an unsupported feature or data format. | Do not retry. Check the message field for details on what is unsupported. |
Authentication and Authorization Errors
These errors indicate issues with the caller's identity or permissions. Do not retry with the same credentials.
| Error Code (REST) | gRPC Code | HTTP Status | Description | Recommended Action |
|---|---|---|---|---|
UNAUTHENTICATED |
UNAUTHENTICATED(16) |
401 | The request does not have valid authentication credentials. The token may be missing, empty, expired, or invalid. | Refresh or provide a valid authentication token and retry. |
PERMISSION_DENIED |
PERMISSION_DENIED(7) |
403 | The caller does not have sufficient privileges to perform the requested operation on the specified resource. | Verify that the caller has the required privileges (e.g., MODIFY, SELECT, USE_CATALOG, USE_SCHEMA) on the target resource. |
Server Errors
These errors indicate a problem on the server side. Retry with exponential backoff and jitter.
| Error Code (REST) | gRPC Code | HTTP Status | Description |
|---|---|---|---|
UNAVAILABLE |
UNAVAILABLE(14) |
503 | The service is temporarily unable to handle the request. This is typically a transient condition. Retry with exponential backoff and jitter. |
RESOURCE_EXHAUSTED |
RESOURCE_EXHAUSTED(8) |
429 | The service is rejecting requests due to resource limits. Reduce request concurrency if possible. Retry with exponential backoff and jitter. |
INTERNAL_ERROR |
INTERNAL_ERROR(13) |
500 | An unexpected internal error occurred. Do not retry. Contact support and provide the full error response for diagnosis. |