Skip to main content
The Rust commerce HTTP layer stores retry receipts in the selected commerce database. These are distinct from native governed command receipts and provider idempotency keys. Back up the tenant database to preserve its business state and completed responses together.

Keep the original request

Retain Idempotency-Key, route, exact request content, tenant/store and authentication context before dispatch. Required-key routes return 428 when the key is missing; a reused key with a changed fingerprint returns 422. Authentication and authorization precede replay. Do not change keys after a lost response to make a request run again. A pending receipt has response_status = 0 and never automatically expires. The mutation may already have committed even if the response could not be stored. Age, process restart, or a later rejection does not prove rollback. Inspect the business/provider record first.

Inspect pending work without changing it

From the source checkout, the native operator example opens an existing store read-only, without creating it or running migrations:
Inspection is tenant-scoped and bounded to the oldest 1,000 pending summaries, including exact reservation times. For a single-tenant store the empty tenant is explicit. Library pending inspection exists on SQLite and PostgreSQL; do not use direct SQL deletion as a retry strategy.

Reconcile a verified SQLite outcome

Stop the original worker and verify the business/provider result. Prepare operator-owned HttpReceiptResolution JSON with original tenant, key, fingerprint, reservation time, verified response and incident/evidence attribution. Preview first:
Completion compares the exact pending identity and writes the verified response with a required audit entry atomically. Stale or repeated resolution conflicts. Audit failure leaves it pending. The helper does not rerun the mutation, delete the receipt, prove worker termination, or verify external settlement. It is operator-only and outside the MCP catalog. The audited helper is SQLite-specific; PostgreSQL has pending inspection and its existing fingerprint-checked completion API. Scope, API and evidence must match the backend. Resume clients only after reconciling the original outcome and confirming same-key behavior. For HTTP authentication and tenant setup see API hardening. For storage failure and restore see backup/recovery.
Last modified on October 20, 2026