I can confirm that on the app side since iOS 26.1 we are observing same behavior:
try await product.purchase(options: options) returns .success
transaction under .verified result has productType == .autoRenewable
but await transaction.subscriptionStatus returns nil
According the documentation it shouldn't happen:
@available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, visionOS 1.0, *)
extension Transaction {
/// The full subscription status for the transaction.
///
/// If the transaction is not for a subscription (i.e. ``Transaction/productType`` is not
/// ``Product/ProductType/autoRenewable``), the value will always be `nil`. The value
/// may be `nil` if there is an error retrieving the subscription status.
///
/// - Note: The value's ``Product/SubscriptionInfo/Status/transaction`` property
/// represents the latest transaction for the subscription, which is not necessarily the same
/// as this transaction.
@available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, visionOS 1.0, *)
@backDeployed(before: iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0)
public var subscriptionStatus: Product.SubscriptionInfo.Status? { get async }
}
Topic:
App & System Services
SubTopic:
StoreKit
Tags: