Skip to main content

Safe retries

A retry is safe when:

  1. The request carries an Idempotency-Key.
  2. The request body is byte-identical to the original.
  3. You retry within 24 hours.

If all three hold, Permissio returns the original response — same status code, same body, same headers — without performing the side effect a second time. The replay carries an extra response header:

Idempotent-Replayed: true

Use that header to confirm the work was deduped rather than re-run.

If the body differs, Permissio returns 409 idempotency_conflict. If the original request is still in flight, Permissio returns 425 idempotency_in_progress; wait briefly (a second or two) and retry. See Errors → Idempotency.