StoreKit2: appAccountToken in purchase() always returns first value instead of updated UUID

Hello, I’m experiencing an issue with StoreKit 2 when passing a new appAccountToken for each purchase request. Case-ID: 15948169 (for DTS reference)

Description of the Problem When initiating a purchase, I generate a new UUID to use as the appAccountToken:

let serverTransactionId = UUID()

let options: Set<Product.PurchaseOption> = [ .appAccountToken(serverTransactionId) ]

let result = try await product.purchase(options: options)

Expected Behavior: Each new purchase should return the updated appAccountToken that I pass into the purchase options. Actual Behavior: The payload response after success always contains the same appAccountToken from the very first transaction. It ignores subsequent UUIDs I pass and keeps reusing the original one. This causes issues because the same identifier is being reused across multiple transactions, making it difficult to map purchases to the correct user session.

Steps to Reproduce Generate a fresh UUID using UUID(). Pass it as .appAccountToken when calling purchase(). Complete the transaction in the sandbox environment. Inspect the payload response → The appAccountToken value is always the same as the first one used, not the newly provided one. Additional Info I do have a focused test project that reproduces this issue. The issue appears specific to appAccountToken persistence across multiple transactions. Has anyone else experienced this behavior with StoreKit 2? Is this expected (Apple caching the first token) or could this be a bug?

Please file a Feedback report using Feedback Assistant, then post your Feedback number here.

StoreKit2: appAccountToken in purchase() always returns first value instead of updated UUID
 
 
Q