Developers
Core concepts

Errors and request IDs

Handle stable FluxDigest error types and preserve diagnostic request IDs.

Unsuccessful API responses contain a stable error type and code:

{
  "error": {
    "type": "validation_error",
    "code": "subscriber_email_invalid",
    "message": "The subscriber email address is invalid.",
    "param": "email",
    "details": null,
    "request_id": "req_01JEXAMPLE"
  }
}
StatusMeaningRetry?
400Malformed requestNo
401Missing, expired, or revoked credentialNo
403Credential lacks the required scopeNo
404Resource is absent from the workspaceNo
409State or idempotency conflictOnly when marked retryable
422Field validation failedNo
429Rate limit reachedAfter Retry-After
500FluxDigest API failureYes, with backoff
503Temporarily unavailableYes, with backoff

Every response includes X-Request-Id. Preserve it in logs. Share the request ID, timestamp, and endpoint with support, but never share the API key.

The SDK converts API and transport failures into typed FluxDigestError subclasses while retaining the original status, code, request ID, and safe response headers.