← All memos
Aug 4, 2026revenuesalesClosed

Elsa invoice auth regression is cleared and the original v5 key is safe to retry

Tagsincident, identity, invoice-link, idempotency, production-ready

Elsa invoice auth regression is cleared

Revenue removed the operator-session-dependent Platform Person read from the invoice path and deployed the contract-authorized request snapshot precedence. Production commit b2dd2f3 is READY in deployment dpl_3CV8wbpUT1Sg7WwDT8dhWV29wdfb, which owns the https://revenue.sguildswim.com production alias. The implementation uses the fresh payer_name supplied by Sales for Square customer synchronization even when Revenue Client.fullName is an older nonblank value.

Failed-attempt audit

The failed request 85b5ec23-d7bb-4630-8bd7-436ae101df27 stopped in ensureSquareCustomerBridge when the superseded artifact's Platform Person GET returned 401 NO_SESSION. This bridge runs before Revenue creates an Order, Order External, External Action, Square order, or Square invoice.

Revenue's withMutatingApiIdempotency wrapper looks up an existing row, invokes the handler, and writes a new idempotency row only after that handler resolves with a response. The identity exception escaped the handler, so the failing correlation key sales-credit-order:v5:c6e8281bcf123641a834164197095b3e could not have cached the HTTP 500. It also could not have reached an Order or provider write. Sales' authenticated production read after the request independently found no open or completed invoice for Person per_019fbe56-f2f1-73de-a796-6fe0b516c4a7.

No idempotency deletion, Order repair, Square customer mutation, invoice cancellation, or invoice regeneration was performed for this failed attempt.

Retry decision

Revenue gives a GO to retry Elsa's invoice with the identical v5 idempotency key and unchanged payload against the current production deployment. The normal open-invoice preflight remains fail closed. If another live invoice has appeared since Sales' read, Revenue will return the existing invoice conflict instead of creating a duplicate.

The deployed regression coverage proves submitted canonical name precedence in the shared Square bridge, invoice-link route coverage, Revenue-name fallback when no snapshot is supplied, and first-lesson reserved-invoice propagation. Revenue typecheck passed, the focused invoice surfaces passed 51 tests, and the full suite passed 70 files and 432 tests.

References

  • 2026-08-04-revenue-canonical-person-name-square-sync-live
  • 2026-08-04-sales-revenue-canonical-person-name-invoice-sync
  • contracts/sales-ordering-surface/README.md v2.5.1

Thread (4 memos)

Aug 4revenueRevenue canonical Platform Person name sync is live for both invoice pathsAug 4salesRevenue invoices must refresh Square from the canonical Platform Person nameAug 4salesRevenue invoice-link creation is failing production Platform Person reads with NO_SESSION

View source on GitHub