iOS app is receiving a new APNS device token every time
<p>I'm using Azure push notifications and am noticing that APNS is sending me a new device token every time my app is launched.  Per Apple's documentation, device tokens should generally remain constant:</p>

<blockquote>
  <p>The device token included in each request represents the identity of
  the device receiving the notification. APNs uses device tokens to
  identify each unique app and device combination. It also uses them to
  authenticate the routing of remote notifications sent to a device.
  Each time your app runs on a device, it fetches this token from APNs
  and forwards it to your provider. Your provider stores the token and
  uses it when sending notifications to that particular app and device.
  The token itself is opaque and persistent, changing only when a
  device’s data and settings are erased. Only APNs can decode and read a
  device token.</p>
</blockquote>

<p>Yet, based on the constant number of failed messages sent via Azure, I can deduce that my app is receiving a new device token from APNS each time I launch the app.  Can somebody tell me:</p>

<ol>
<li><p>Why I'm getting a new device token each time even though I'm not changing phone settings or deleting the app?  </p></li>
<li><p>In Apple's excerpt above, what do they mean by "deleting device's data"?  Exactly what data is used by APNS to determine a "unique app and device combination"?</p></li>
</ol>

<p>Here's the code:</p>

<p><strong>AppDelegate.m</strong></p>

<pre><code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge |
                                                                                             UIUserNotificationTypeAlert |
                                                                                             UIUserNotificationTypeSound)
                                                                                 categories:nil];
        [application registerUserNotificationSettings:settings];
    } else {
        [application registerForRemoteNotifications];
    }
}


- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
    //initiate registration process with Apple Push Notification service
    [application registerForRemoteNotifications];
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *) token {

    // Setting token with Azure hub
    [[MyAzureNotificationHub sharedInfo] setDeviceTokenData:token];
}
</code></pre>