iOS blocks 100% notification for app in the background

I created my app. One of its functionality is receive remote notification in the background (it receives it from Firebase Cloud Messaging via APNS) and replies with device location data. This is "boat tracking and alarm" type of app.

It worked well both on my iPhone (where I use the same Apple ID as on developer's account) and on my son's iPad (different Apple ID). After the first review, when app was rejected with some remarks, background remote notifications completely stopped working on my iPhone. It looks like my iPhone put the app in permanent sleep. It never receives the background notifications. It receives them though in 2 case:

  • when I open the app (it is no longer in background)
  • when location is changed (it wakes app in the background). But the app should also respond when the device is stable at the position (I use both: precise and Significant Location Change. In the latter case changes are very rare). Btw, I scheduled a background task, not location, and it also never gets executed, so this workaround does not work.

I describe it, so any Apple engineer does not get confused, verifying that these remote notifications reach the device. NO, they never get through when app is in the background (THIS IS THE PROBLEM), not that they are never delivered (the are, in the foreground). And the proof that it is not a problem with the app or remote notification construction is:

  1. they work on another drives (iPad) with no issues. Sometimes they are very delayed, sometimes almost instant. But usually they work.
  2. they worked the same way on my iPhone (with my developer's Apple ID) before the first rejection, and I haven't messed with messaging functionality since then.

Now I am over with the last hope I had. I finally got my app release in App Store. I hoped official version would release some blockade my iOS put on my app. But unfortunately not. Official version works the same way as the test one. It works fine (receiving notifications in the background) on my son's iPad and it does not receive any background notification on my iPhone (100% block rate).

Can anyone help me how can I reset my apps limits, the iOS created for my app? It seems that the rejection was a sparkle here - this is just a hint. I can provide any system logs for Apple engineers from both devices (iPhone and iPad) if you would like to check this case.

I as I tried to explain in your other thread, there is no such thing as a blockade on your app. And we were able to confirm that the notifications were reaching the device.

This can also be confirmed by your admission that notifications work if the app is in the foreground or has been awakened by the location event.

What is not happening is the notifications reaching your app if your app is not already running, which is explained by the throttling, where an app suspended in the background or terminated will only be woken up 1-2 times an hour for background notifications. All depends on the device state and it is possible that the app would not be woken up at all.

The issue is you are using background (content-available) notifications, which are heavily throttled and you can expect 1-2 notifications across all apps on the device to reach their corresponding apps. Meaning, if there is another app also using background notifications on that device, you would be sharing the quota with those.

There is nothing anyone can do to reset your app limits. Such limits on the device will be reset every 24 hours.

If you require your app to react to every notification, background notifications is not the correct method to use.

If you have a device that is not receiving any notifications at all, that could be some other issue, or perhaps something not covered by your testing methodology, but there is no evidence from our end that the notifications are not being sent or received by the devices you are currently sending to.

If you want us to deep drill into one specific notification you have sent but believe was not received, we can look into that if you can share the apns-id of the notification you have sent.


Argun Tekant /  DTS Engineer / Core Technologies

I am very sorry, if I spam here. I am not sure if comments to your post @Engineer reached you. Since I haven't heard anything from you for 3 days I decided to repeat it in a new reply-post.

In short. I cannot send you APNS-ID for specific notification that has not been received by my app, as the notifications are generated externally by Google FCM. I can provide you my APNS token, but, for security reasons, I do not think it is wise to share it here, in public place.

What I did to test if it throttling mechanism which limits my app's background notifications, I sent 4 notifications (via Google FCM) from 4 different devices. 1 iPad, and 3 Android based devices. I did it on 15-08-2025, 9:04-06 UTC. I turned off the notification for most commonly using notification apps in advance. Since then (for 3 days) I have received 3 or 4 not related to my app notifications (first one came after more then 1 hour after I sent my notifications), for apps I missed (I turned off the notifications for them too immediately after). NONE of the 4 notifications I sent on 15-08-2025, 9:04-06 UTC have been received until now! Even though there were almost no other notifications received.

I haven'r open my app since the beginning of an experiment, nor I haven't change its location (so no Significant Location Change event have occured, which wakes my app). I do not know if these messages are still in the queue or dropped by APNs.

For me it doesn't look as throttling mechanism problem, as there were no other notifications coming and yet no background messaging was allowed for my app. I will remind that it (background notifications) worked before the rejection and it still works on other device (iPad) with different Apple ID user.

Would you be able to track this issue on your side APNs <-> iOS?

All 4 of those notifications have been received by the target device. So whatever the issue is, it is on the device.

Receipt by the device does not mean it was delivered to the app. Being delivered to the app does not mean, the app is processing it correctly.

So, unless you have a bug in your code, these are being throttled - as expected.

If you are getting none, and if you are testing on a TestFlight or release build (as you say the problem started after your submission), perhaps there is a code path in your code that is going awry on a release build vs. a debug build.

If you test on a debug build and things work, that would be it (don't forget that the push tokens will change when switching between debug and release builds).

Make sure your app is calling the completion handler passed to the didReceiveRemoteNotification() method. You must call the block in the handler parameter or your app will be terminated, and may not be launched again for future notifications.

Also, I will reiterate that silent push notifications are not designed for what you are doing, and the system expects your app to fetch some data for your app by downloading it from your servers. The system tracks the elapsed time, power usage, and data costs for your app’s background downloads. Apps that do not follow the guidelines may not always be woken up to process future notifications.

Otherwise, we will need to look at a log directly from the device to determine the exact reason the notification is not being passed to your app.

Double check your code, and if you are certain that there is no issue there, and you are certain that there are no extenuating circumstances that should prevent your app from being launched (like not calling the completion block, taking too long to process the notification, etc.), we can take a look.

To do that, please go to https://developer.apple.com/bug-reporting/profiles-and-logs/ and follow the instructions for APNS for iOS to install a logging profile on your device. Then reproduce the issue, and follow the instructions at the above link to create a sysdiagnose.

Once you have that, open a support request at https://developer.apple.com/contact/request/code-level-support/ and reference this forum thread in the "Did someone from Apple ask you to submit ..." section

and include all the information about the failed notifications like you did here (also share the token), and provide a link to the sysdiagnose you created at the above step for me to download it.

Please make sure you have taken all the diagnostic steps above before you do.


Argun Tekant /  DTS Engineer / Core Technologies

iOS blocks 100% notification for app in the background
 
 
Q