StoreKit Sandbox refund sheet consistently shows “Cannot Connect” — FB24527792

We are seeing a consistently reproducible StoreKit Sandbox issue involving Apple’s refund request sheet.

Our app uses:

Transaction.beginRefundRequest(for:)

The refund sheet is successfully presented, but instead of loading the refund reason form, the Apple-provided sheet consistently displays:

“Cannot Connect”

This prevents the Sandbox refund request from being submitted.

Environment:

App: BTY Norebang Admin iOS: 26.6.1 Physical iPhone StoreKit environment: Sandbox Product type: Consumable Product: BTY Room – 1 Hour Development-signed build

We have confirmed:

Normal consumable purchase succeeds Transaction retrieval succeeds beginRefundRequest successfully presents Apple’s refund sheet App Store Server API calls succeed App Store Server Notifications V2 TEST delivery succeeds Get Test Notification Status reports sendAttemptResult = SUCCESS The problem persists after rebooting the device The problem persists after signing out and back into the Sandbox Apple Account Different network conditions have been tested The issue reproduces in an isolated Xcode/StoreKit test project with no BTY backend, authentication, or app networking dependency

Expected behavior:

The Sandbox refund request sheet should load the refund reason selection and allow the refund request to be submitted.

Actual behavior:

The Apple-provided refund sheet opens but displays “Cannot Connect.”

No refund is submitted and no App Store Server Notification V2 REFUND event is generated.

Feedback Assistant report:

FB24527792

The Feedback Assistant report includes sysdiagnose and relevant diagnostic logs.

This is currently the only remaining external blocker preventing us from completing full and prorated Sandbox refund end-to-end validation before enabling Production App Store Server Notifications.

Could an Apple StoreKit / App Store Commerce engineer confirm whether this is a known Sandbox issue or advise whether any additional configuration or diagnostic information is required?

We can provide a focused reproduction Xcode project, additional sysdiagnose logs, and Sandbox transaction details if needed.

Same here, and it reproduces every time.

Environment

  • iPhone 17 Pro, iOS 27.0 (24A437) and again after updating to iOS 27.2 (24B5099f)
  • Xcode 27 SDK, development-signed build, App Store Sandbox (no StoreKit configuration file active)
  • Both an auto-renewable subscription and a consumable

What happens

  • refundRequestSheet(for:isPresented:onDismiss:) presents the sheet, but it shows "Cannot Connect" with Retry. Retry never loads the reason form.
  • Calling Transaction.beginRefundRequest(for:in:) directly gives the same result, so it is not the SwiftUI modifier.
  • Closing the error sheet returns .success(RefundRequestStatus.success), even though no reason was chosen and nothing was submitted. Apps that trust .success will show "refund requested" when no request exists.
  • With local StoreKit Testing on the iOS 27 simulator, the same code loads the real reason form.

Console The sandbox /inApps/v1/refund/info/{transactionId} request fails with code 306, "exhausted retries (3 / 3)", while the error metadata reports HTTP status 200. The web view bootstrap then fails. One correlation key: VM75WSOPKSGGRCD7BEJJZNV3RA (2026-10-08 23:19 EDT).

Sandbox App Store Server Notifications V2 TEST delivery works for us too, so the server side is reachable.

Could an Apple engineer confirm whether this is a known Sandbox refund-info issue? Happy to send a sysdiagnose and transaction IDs.

StoreKit Sandbox refund sheet consistently shows “Cannot Connect” — FB24527792
 
 
Q