Two kinds of failure
A batch can fail as a whole, or one event inside it can fail on its own. These need different handling.Exception types
Every exception inherits fromReconifyError, so one except ReconifyError
catches all of them. Catch a subclass when the response needs a different
action.
status_code, title, detail, code,
validation_errors, request_id, response_headers, and response_metadata.
Exceptions never include your API key or the request body. Log
request_id and
include it in support requests.Which status to act on
Each status implies one action:Rejected events inside a batch
The batch endpoint returns202 when at least one event is accepted or
duplicated, and 422 when every event is rejected. Always read results.
item.index matches the position in the list you sent. Use it to locate the
producer-side record without writing the event or customer reference to logs.
Automatic retries
Retry behavior is configured on the client:
Retries apply to
429 and 503 responses and to transport errors. A
Retry-After header overrides the computed backoff, capped at max_delay.
By default only GET, HEAD, and OPTIONS are retried, so event ingestion is
not retried automatically.
Turn on retry_unsafe_methods only when every event in the batch has a stable
id. Reconify then returns duplicate for events it already stored instead of
recording them twice.