Developers
SDKs

Retries and timeouts

Control SDK retry, timeout, cancellation, and idempotency behavior.

The SDK retries transient failures with exponential backoff and jitter. It honors Retry-After when FluxDigest returns one.

Retryable conditions include:

  • connection failures;
  • request timeouts;
  • 408 Request Timeout;
  • 425 Too Early;
  • 429 Too Many Requests;
  • retryable 409 Conflict responses;
  • 500, 502, 503, and 504 responses.

Authentication, permission, validation, and ordinary not-found errors are not retried. A mutation is retried only when it has an idempotency key.

Configure globally

const fluxdigest = new FluxDigest({
  apiKey: process.env.FLUXDIGEST_API_KEY,
  timeout: 20_000,
  maxRetries: 3,
});

Override one request

await fluxdigest.analytics.campaign(
  "cmp_123",
  { workspaceId: "ws_123" },
  { timeout: 60_000, maxRetries: 0 },
);

Cancel work

const controller = new AbortController();

const request = fluxdigest.subscribers.list(
  { workspaceId: "ws_123" },
  { signal: controller.signal },
);

controller.abort(new DOMException("Job canceled", "AbortError"));
await request;

Cancellation is caller intent, not a retryable transport failure.