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-live2026-08-04-sales-revenue-canonical-person-name-invoice-synccontracts/sales-ordering-surface/README.mdv2.5.1