Looks like the ShopifyTransaction.ShopifyPaymentRequest.PaymentMethod.Data.CancelUrl.AbsoluteUri differs between all Shops we’ve used for testing including our Prod Shop, and our customer’s Prod Shop. The latter has a CancelUrl with a different format and it looks like just the cart url itself, not an actual cancellation url, e.g. it doesn’t contain “cn” and “/processing”, etc. So the backend system doesn’t know there’s a cancellation and never calls our backend for a new processing URL and SessionId.
No idea why this is or how to resolve. And we’re Live in Production.