I've had the same issue, but the accepted answer helped me figure out the solution. If you build you app for simulator or a physical device via xcode for development, the device will be treated as using a sandbox, so a "sandbox" token will be registered. So you either have to use a sandbox key on your server or you have to archive your app as for "production". that's the issue i was having. I've had only production key, so i've archived my app and distributed it via TestFlight and the issue was gone. Perhaps this could help somebody in the future