Reference

Errors

HTTP and gRPC error codes, retry guidance, and idempotency key usage.

HTTP Error Codes

StatusMeaningRetry?
400Invalid request body, vector payload, or field valueNo — fix the request
401Missing or invalid API keyNo — check your key
403API key scope does not permit this operationNo — use a key with the correct scope
404Endpoint not foundNo — check the URL
405Wrong HTTP method for this endpointNo — use the correct method
409Idempotency key conflictUsually no — a previous request with this key already succeeded
429Rate limit exceededYes — exponential backoff
500Internal server errorMaybe — retry once, then contact support
503Service temporarily unavailableYes — retry with backoff

gRPC Status Codes

If you use the Python SDK, gRPC errors are automatically mapped to typed exceptions:

gRPC CodeSDK ExceptionRetry?
INVALID_ARGUMENTInvalidArgumentErrorNo
UNAUTHENTICATEDAuthenticationErrorNo
PERMISSION_DENIEDPermissionDeniedErrorNo
NOT_FOUNDNotFoundErrorNo
RESOURCE_EXHAUSTEDQuotaExceededErrorWith backoff
DEADLINE_EXCEEDEDDeadlineExceededErrorYes
UNAVAILABLEServiceUnavailableErrorYes
INTERNALInternalServerErrorMaybe

Retry Guidance

  • Retry 429, 503, UNAVAILABLE, and DEADLINE_EXCEEDED with bounded exponential backoff.
  • Do not retry 400, 401, 403, or 404 — these indicate a problem with your request or credentials.
  • Always send x-idempotency-key on write operations so retries are safe.
  • The Python SDK handles retries automatically when configured with a RetryPolicy.

Idempotency

Include an x-idempotency-key header on all mutating requests (upsert, update, delete). If the same idempotency key is sent twice, the gateway returns the original response without re-executing the operation. This makes retries safe even for write operations.