I was asked to debug similar behaviour on a clients app, under iOS9.
It turns out the app was calling registerUserNotificationSettings and registerForRemoteNotifications from the appDelegate as is common.
However, it was also doing this a second time shortly after in a subsequent permissionsViewController.
If a user declined the request resulting from the appDelegate then the subsequent attempts to allow notifications after a user had seen a rationale for allowing it (the second calls from the permissionsViewController) were set with types set to zero same as the appDelegate calls.
Removing the initial appDelegate calls and having only the permissionsViewController calls present solved this.