SKCloudServiceSetupViewController has "run into a problem"

Originator:jay.whitsitt
Number:rdar://33659617 Date Originated:August 1 2017
Status:Open Resolved:
Product:iOS + SDK Product Version:StoreKit
Classification:Bug Reproducible:Sometimes
 
Summary:
When opening the SKCloudServiceSetupViewController to give the user the option to start a trial, some users are presented with "We've run into a problem". 

This may be related to transferring a device to a new Apple ID as both devices we were able to troubleshoot in person were presented with the transfer to a new Apple ID alert when toggling the Automatic Download settings in the iTunes & App Store settings screen.

This has never been an issue for accounts with an active Apple Music subscription. Once a user sees this on a device, they seem to always see it on that device. The same Apple ID on another device doesn't necessarily see this issue, too.

Steps to Reproduce:
1. Sign into iTunes with an Apple ID that does not have an Apple Music subscription
2. Run this code:

SKCloudServiceController *controller = [SKCloudServiceController new];
[controller requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError * _Nullable error) {
    if (capabilities & SKCloudServiceCapabilityMusicCatalogSubscriptionEligible) {
        SKCloudServiceSetupViewController *setupController = [SKCloudServiceSetupViewController new];
        setupController.delegate = self;
        NSDictionary<SKCloudServiceSetupOptionsKey, id> *options = @{ SKCloudServiceSetupOptionsActionKey : SKCloudServiceSetupActionSubscribe,
                                                                      SKCloudServiceSetupOptionsAffiliateTokenKey : @"1010lqqg" };
        [setupController loadWithOptions:options completionHandler:^(BOOL result, NSError * _Nullable error) {
            if (result) {
                [weakSelf.viewController presentViewController:setupController animated:YES completion:nil];
            }
        }];
    }
}

You may also be able to use our app which uses the above code to reproduce this:

2. Open the Vertigo app (1118149022)
3. Sign in
4. Open the menu on the top left
5. Tap Accounts
6. Tap Apple Music

If the account you're signed into in iTunes doesn't have an active Apple Music subscription, it will present an SKCloudServiceSetupViewController.

Expected Results:
A working trial signup screen

Observed Results:
The trial signup screen without the "Start trial" button and without any information about Apple Music. Instead, it just says "We've run into a problem." (screenshot attached)

Version:
iOS 10.3.1 and 10.3.2

Notes:
I was once able to resolve the issue by performing the following steps, however, it only worked on 1 of 2 devices. The second device is still seeing the issue after performing these steps.
1. Go to Settings app
2. Open iTunes & App Store
3. Toggle one of the first three Automatic Download options
4. Tap Transfer on the alert that displays explaining that the device will now be associated with the new Apple ID
5. Toggle all three settings on (Music, Apps, and Books)

The iPhone 7 Plus running iOS 10.3.2 using Apple ID [email2] was able to properly display the Apple Music trial after performing these steps. The device with [email1] still says "We've run into a problem."

Attached is the sysdiagnose from the iPhone 6 Plus running iOS 10.3.1 using Apple ID [email1]. The issue was last reproduced at 12:13 pm CDT before creating the sysdiagnose.

Configuration:
iPhone 6 Plus running iOS 10.3.1 using Apple ID [email1]
iPhone 7 Plus running iOS 10.3.2 using Apple ID [email2]

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!