StoreKit 2 Sandbox: beginRefundRequest returns cancelled after connection error for consumable IAP

Hello Apple Developer Community,

We are developing an iOS application using StoreKit 2 with four consumable in-app purchase products.

All four products have been successfully purchased using real Apple Sandbox transactions on a physical iPhone. The transactions were verified using the App Store Server API, and our backend credited the corresponding virtual points exactly once.

However, we are encountering an issue when attempting to request a refund using StoreKit 2.

Environment

  • Xcode 27.0
  • Physical iPhone
  • Apple Sandbox tester account
  • StoreKit 2
  • Consumable in-app purchases
  • App Store Server Notifications V2

Steps to reproduce

  1. Complete a consumable in-app purchase using an Apple Sandbox tester.
  2. Confirm that the transaction is verified and not revoked.
  3. Invoke the StoreKit 2 refund request sheet using beginRefundRequest.
  4. The Apple-provided interface displays a connection-related error.
  5. The API returns cancelled.

Expected result

The Sandbox tester should be able to submit a refund request through the supported Apple refund flow.

Actual result

The refund sheet displays a connection-related error and returns cancelled. No refund is confirmed, and the transaction remains non-revoked.

We have successfully received a TEST notification through App Store Server Notifications V2, but this does not validate an actual REFUND notification.

Questions

  1. Is beginRefundRequest supported for consumable in-app purchases in Apple Sandbox?
  2. Is this connection-related error a known Sandbox limitation?
  3. Is there an alternative supported way to generate a real Sandbox refund event?
  4. What is the recommended approach to validating the complete refund lifecycle, including App Store Server Notifications V2, for consumable products?

Any guidance from Apple engineers would be greatly appreciated.

Thank you!