CTCellularPlanStatus.getTokenWithCompletion Returns Nil Token and Nil Error When Multiple SIM Profiles Are Configured but Only One Subscription Is Active

Problem:

CTCellularPlanStatus.getTokenWithCompletion Returns Nil Token and Nil Error When Multiple SIM Profiles Are Configured but Only One Subscription Is Active

Environment:

  • Device: iPhone 15 Pro
  • iOS: 27.0
  • Capability: com.apple.developer.upi-device-validation
  • Frameworks: CoreTelephony, MessageUI
  • Reproduced in both production app and standalone Objective-C sample app

Issue: After successful UPI verification SMS submission, setUPIVerificationCodeSendCompletion returns YES, but CTCellularPlanStatus.getTokenWithCompletion returns:

Token = nil
Error = nil

Code:

[messageController setUPIVerificationCodeSendCompletion:^(BOOL result) {
    if (result) {
        [CTCellularPlanStatus getTokenWithCompletion:^(NSString *token, NSError *error) {
            NSLog(@"Token = %@", token);
            NSLog(@"Error = %@", error);
        }];
    }
}];

Observed Behavior:

The behavior appears to depend on the SIM profile configuration:

Scenario 1

Device has only a single SIM profile configured:

  • Physical SIM only, or
  • eSIM only

Result: Token is returned successfully.

Scenario 2

Device has both Physical SIM and eSIM profiles configured and both are active.

Result: Token is returned successfully.

Scenario 3

The device is configured with both a Physical SIM profile and an eSIM profile; however, only one subscription is active:

  • Physical SIM active, eSIM disabled, or
  • eSIM active while the Physical SIM is removed or unavailable (displayed as "No SIM" in Settings)

Observed Result:

Token = nil
Error = nil

Summary of Observed Behavior

Token retrieval succeeds in the following configurations:

  • Device provisioned with a single SIM profile (Physical SIM only or eSIM only).
  • Device provisioned with both Physical SIM and eSIM profiles, with both subscriptions active.

Token retrieval consistently fails in the following configuration:

  • Device provisioned with both Physical SIM and eSIM profiles, but only one subscription is active.

This behavior appears reproducible and suggests a potential issue related to subscriber resolution when a dual-SIM device contains multiple SIM profiles but only a single active subscription. The API does not provide an error indicating why token generation or retrieval failed.