Rust SDK · Errors

The recorder surfaces these error types:

  • HttpError. Non-2xx from the ingestion endpoint. Read status / body; call transient() (5xx + 429 are flagged for retry).
  • RecordError. The error returned by record / flush: Http, Transport (network), Timeout, or BufferFull (overflow with OverflowPolicy::Error). Has a transient() convenience.
  • DrainTimeoutError. close() exceeded drain_timeout with events pending.
use everscribe::recorder::RecordError;

if let Err(err) = rec.flush().await {
    if err.transient() {
        // 5xx / 429 / network / timeout — safe to retry
    }
}

The minter returns MinterError: Validation (client-side, before any HTTP call — invalid tenant_id, malformed wildcard, out-of-range expires_in), Http { status, body } (400/401/404), Transport (network), or Decode (unexpected response body).