Push message on the lock-screen disappears in one specific instance.
In general the situation is as follows:
the application, upon starting up, sets the badge counter (i.e. notificationCenter.setBadgeCount(3))
the application is being sent to background
the screen is locked (it doesn't matter if it's turned on or not)
send a push message to the application and set the badge (in aps) to "0"
What happens:
the screen lights up (unless it's lit up already), the push is being displayed for a very short time and gets hidden.
Happens on iOS 18.1, 18.1.1, 18.2. If not setting badge in the aps keys it works correctly.
I've created a feedback report https://feedbackassistant.apple.com/feedback/16095572. I am able to reproduce the issue on a sample app 100% of the time :/
Notifications
RSS for tagLearn about the technical aspects of notification delivery on device, including notification types, priorities, and notification center management.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello Apple Developer Community,
We’re building an MDM product (SaaS, multi-tenant). I’d like clarification on the APNs MDM push certificate usage model for service providers (MSPs).
Question:
Is it acceptable for an MDM vendor to use a single APNs MDM push certificate owned by the vendor to manage devices for multiple, independent customer organizations?
Or is it required/recommended that each customer (company) must obtain and use its own APNs MDM push certificate (issued under the customer’s Apple ID) for their tenant?
Why we’re asking:
We understand that many guides show the process where each customer logs into the Apple Push Certificates Portal with their own Apple ID, uploads a CSR provided by the MDM, and then renews yearly.
Practically, for a small team and early-stage deployments, using one vendor-owned certificate across multiple tenants would be simpler.
We want to ensure we’re not violating any policy, terms, or technical requirements (e.g., certificate ownership, topic binding, device token isolation, audit/compliance expectations).
What we need from Apple (or authoritative sources):
An official Apple document or policy that clearly states whether per-customer certificates are mandatory vs strongly recommended for MSP/multi-tenant MDMs.
If per-customer is mandatory, please point to the relevant clause or section.
If a vendor uses a single certificate for multiple organizations, what risks or consequences should we expect (e.g., compliance issues, supportability, potential program violations, off-boarding problems, etc.)?
Context:
We’re sending only MDM wake notifications (standard MDM flow).
We understand certificates expire yearly and must be renewed with the same Apple ID to avoid device re-enrollment.
We want to follow Apple’s best practices while keeping early operations manageable.
Any guidance, links to official documentation, or clarification from Apple engineers/moderators would be greatly appreciated.
Thank you!
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
Apple Business Manager
Device Management
I’m using the shielding API, my code:
let store = ManagedSettingsStore()
let whitelist = SharedDefaults.whitelistApplications
store.shield.applicationCategories = .all(except: whitelist)
And to clear the shield, my code is:
store.shield.applications = nil
store.shield.applicationCategories = nil
The issue:
Some users report that after uninstalling my app, the shield is still active, and the UI changes to the default iOS system interface. Even after restarting the device, the apps on the phone remains locked, so the user has no way to remove the shield.
Recently I’ve received several complaints on social media and App Store comments, accusing my app of being malicious software.
This is not a 100% reproducible bug, but it happens frequently enough. I was also able to reproduce it myself by uninstalling the app during an active lock session.
Could Apple engineers please look into this issue and advise how to ensure that once the user uninstalls the app, the device is no longer locked?
I’m getting calls from Pakistan every hour. I cant block them because it’s a different number every time. I have downloaded the new beta version of the upcoming software update and it allows you to set to ask a question before unknown callers ring through. It’s not working and my phone is constantly ringing. I can’t block unknown callers as I use my phone for work. How can I silence ringing from calls specifically from Pakistan Using the country code?
Topic:
App & System Services
SubTopic:
Notifications
Hi all,
May I please ask for an official clarification or documentation reference from Apple regarding this scenario:
Is it possible for an iOS app to automatically launch or open a specific screen when a push notification is received — while the app is in the background or terminated (killed) state?
I understand that for most cases, user interaction (such as tapping the notification) is required before the app can show UI. However, I’d like to confirm whether this is also true for time-sensitive or critical alert notifications, including emergency use cases (e.g. public safety alerts).
Specifically:
Can a critical alert notification directly launch the app or present a view controller?
Or is user interaction always required before the app can present any UI, even with the critical alert entitlement?
I would appreciate if anyone — especially Apple staff or engineers — could share an official Apple document or statement that confirms this behavior.
Thank you very much!
(Use case context: I’m developing an emergency broadcast feature for a property management / tenant app.)
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
User Notifications
PushKit
Background Tasks
I have a working AlarmKit app, but I've noticed that after any iOS update (e.g. the 26.0.1 update from a few days ago), my scheduled alarms seem to lose their UI strings, so instead of the Stop button saying "Stop", it says "alarm_ui_stop_button" (which is my localization key for the button text). If I delete the alarm and re-add it, then it works again... until the next software update.
It seems like OS updates are interfering with the link between scheduled alarms and app localization strings, which I believe are dynamically looked up at alarm time (not at configuration time).
I am settings the strings in the standard way like this:
AlarmManager.AlarmConfiguration(
schedule: .fixed(date),
attributes: AlarmAttributes<SDAlarmMetadata>(
presentation: AlarmPresentation(
alert: AlarmPresentation.Alert(
title: "alarm_ui_title",
stopButton: .init(text: "alarm_ui_stop_button", textColor: .yellow, systemImageName: "xmark")
)
),
metadata: SDAlarmMetadata(title: title, subtitle: subtitle),
tintColor: .yellow
),
sound: .default
)
Has anyone else noticed this or found a workaround? I guess I could use localization keys that are identical to the desired text, but this would only work for one language.
Topic:
App & System Services
SubTopic:
Notifications
In the new AlarmKit API, how do you localize NSAlarmKitUsageDescription?
In the case of other usage descriptions, such as NSLocationWhenInUseUsageDescription, you can use an InfoPlist.xcstrings file, but this does not appear to work for NSAlarmKitUsageDescription.
Topic:
App & System Services
SubTopic:
Notifications
UNNotificationAttachment convenience init method seems to be checking for supported file types based on the extension of the file URL provided as a constructor parameter. This seems to be sub-optimal at best and incorrect at worst.
Is this is a known issue for which a bug already exists?
Hello all 👋
We're developing an app for families with neurodivergent members (primarily autistic children) and have run into a critical reliability issue with silent push notifications that breaks core functionality.
Our current implementation:
When a caretaker updates the person's daily routine/schedule in our system, we send a silent push notification to the user's device. The app wakes, connects to our server, downloads the updated schedule, and creates/updates local notifications for upcoming activities.
The problem:
Because the app is rarely/never directly interacted with by the end user (the child doesn't open the app - caregivers configure it on their behalf), silent push notifications get progressively throttled and eventually stop being delivered entirely. This means schedule changes made by caregivers never reach the device, breaking the app's core value proposition. Uninstalling and reinstalling doesn't reset the throttling state
Questions:
Is there any way to reset or mitigate throttling for devices that legitimately need background updates but have low or no user interaction? This is an accessibility use case where the end user (child) doesn't interact with the app, but the app must reliably receive updates. Would switching to regular (visible) push notifications avoid this throttling even if the app is not interacted with?
We already have Critical Alerts entitlement, but for regular updates we're worried that the "CRITICAL ALERT" banner will be too upsetting for the child. Is there any exception process for accessibility apps to change the way Critical Alerts are presented?
For neurodivergent individuals, predictable routines are essential. When schedule updates don't reach their device, it can cause significant distress. This is a genuine accessibility need, not a "nice-to-have" feature.
Any guidance from Apple engineers or developers who've solved similar challenges would be greatly appreciated.
Thank you!
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
iOS
Accessibility
User Notifications
Issue:
I am making an application that stores data locally from notifications fired from the server. Everything works fine in the foreground but the background is having problems with not being triggered when notifications are fired.
So we tried firing 2 notifications at the same time, including default and silent types. But the problem continues to arise on ios 18, when firing multiple times like that, the trigger is not handling all notifications, leading to data loss. I tried on ios 15 and it worked fine.
Environment:
Device or Simulator: Iphone 11 pro max (iOS 18.3.2
Steps to Reproduce:
Open app, allow received notification.
Move app to background mode or terminate app.
Sent 2 notifications:
a. Default notification payload:
{
"aps": {
"content-available": 1
},
”notification”: {…},
“alert”: {..},
“data": "some_value"
}
b. Silent notification payload:
{
"aps": {
"content-available": 1
},
”data": "some_value"
}
What I've Tried:
Trigger notification in function:
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
Handle write data to local storage in above function, put it in background thread also.
Thanks in advance!
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
Cloud and Local Storage
Background Tasks
We operate a social network application, SportsYou with over 3 million monthly active users and are experiencing significant issues with push notification delivery through APNs.
We have a large number of users reporting they are not receiving push notifications. Our infrastructure uses AWS SNS integrated with APNs to deliver notifications. However, AWS CloudWatch consistently reports successful delivery (Success response), even though users confirm they never received the notifications.
Because we receive success responses from AWS SNS, our system does not attempt to recreate or refresh the device endpoints. This leaves us unable to detect or recover from these delivery failures automatically.
This issue is widespread and inconsistent. It affects users across multiple variables including different iOS versions, different device models, and different versions of our application. We cannot identify a clear pattern that would help us isolate the root cause.
With millions of active users, even a small percentage of delivery failures represents thousands of users experiencing a degraded service. This is significantly impacting user engagement and satisfaction.
We need guidance on how to properly diagnose this issue and ensure reliable notification delivery to our users. Specifically, we'd like to understand why we're receiving success responses when notifications aren't being delivered, and what steps we can take to detect and prevent these failures.
We operate a social network application, SportsYou with over 3 million monthly active users and are experiencing significant issues with push notification delivery through APNs.
We have a large number of users reporting they are not receiving push notifications. Our infrastructure uses AWS SNS integrated with APNs to deliver notifications. However, AWS CloudWatch consistently reports successful delivery (Success response), even though users confirm they never received the notifications.
Because we receive success responses from AWS SNS, our system does not attempt to recreate or refresh the device endpoints. This leaves us unable to detect or recover from these delivery failures automatically.
This issue is widespread and inconsistent. It affects users across multiple variables including different iOS versions, different device models, and different versions of our application. We cannot identify a clear pattern that would help us isolate the root cause.
With millions of active users, even a small percentage of delivery failures represents thousands of users experiencing a degraded service. This is significantly impacting user engagement and satisfaction.
We need guidance on how to properly diagnose this issue and ensure reliable notification delivery to our users. Specifically, we'd like to understand why we're receiving success responses when notifications aren't being delivered, and what steps we can take to detect and prevent these failures.
I am an iOS development engineer. Recently, I updated the Xcode version to 16.1 (16B40) and updated my debugging device (iPhone 15) to iOS 18.1.1. However, I found that I could not respond to the delegate method.
I confirmed that my code, certificate, Xcode settings, and network environment had not changed. Simply executing
application.registerForRemoteNotifications()
in
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
did not receive a response(didRegisterForRemoteNotificationsWithDeviceToken or didFailToRegisterForRemoteNotificationsWithError ).
In the same environment, when I switched to another device for debugging (iOS 17.0.3), the delegate method would respond.
I really don't know what to do, I hope someone can help me, I would be very grateful.
Please note: Everything is normal when using devices before iOS 18.1.1 version
When subscription renewing , can do purchase_date faster than notification_date quickly?
I received my app user purchase notification
this purchase date is 2025-08-31 06:42:54(UTC)
but notification date is 2025-08-30 22:45:01(UTC)
how can you do this?
I can't understand it please let me explain
Topic:
App & System Services
SubTopic:
Notifications
Hello Team,
We are currently experiencing an issue where some of our devices are not receiving push notifications. We are sending notifications via the Apple Push Notification portal (https://developer.apple.com/notifications/push-notifications-console/) using the following two requests. However, in both cases, the notifications are not being delivered to the devices.
Scenario 1 :
When we send a request with apns-push-type set to alert, we receive the following error.
Request :
curl -v
--header "authorization: bearer ${AUTHENTICATION_TOKEN}"
--header "apns-topic: com.testcompany.sampletest"
--header "apns-push-type: alert"
--header "apns-priority: 10"
--header "apns-expiration: 0"
--data '{"aps":{"alert":{"title":"Test Notification Title","subtitle":"Test Notification Sub Title","body":"Test Notification Body"}}}'
--http2 https://api.push.apple.com:443/3/device/*devicetoken*
Response:
{
"code": 400,
"message": "bad-request",
"reason": "The device token is inactive for the specified topic. There is no need to send further pushes to the same device token, unless your application retrieves the same device token.",
"requestUuid": "c4ae39b4-87e1-4269-a1e9-163f60ec0385"
}
Scenario 2 :
However, if we send the request with apns-push-type set to background, the request is processed successfully by APNs, but no notification is received on the device.
Request :
curl -v
--header "authorization: bearer ${AUTHENTICATION_TOKEN}"
--header "apns-topic: com.testcompany.sampletest"
--header "apns-push-type: background"
--header "apns-priority: 10"
--header "apns-expiration: 0"
--data '{"aps":{"alert":{"title":"Test Notification Title","subtitle":"Test Notification Sub Title","body":"Test Notification Body"}}}'
--http2 https://api.push.apple.com:443/3/device/*devicetoken*
Response:
Getting a message that The notification sent successfully but no notification is received on the device.
In both cases (with alert and background push types), the push notification does not reach the device.
Additionally, when we validated the device token using the APNs Device Token Validator, it appears to be valid and returns the following message.
"Device Token is valid for sending Alert & Background push-type notifications in the Production environment"
Affected Device:
macOS version : MacOS 15.3.1
Processor : Apple M1
Could you please assist me in resolving this issue?
Thanks
AlarmKit custom sounds are universally broken in iOS 26.0 stable - instead of playing your custom sound, it plays a system error/timeout beep.
I've spent days investigating why custom sounds result in what sounds like an error beep (like when you cancel an operation or hit a timeout) instead of the actual audio file. I can now prove this is an Apple bug, not implementation error.
Evidence:
Test 1: My Implementation
Followed Apple's documentation exactly
Tried both bundle and Library/Sounds (as documented)
Result: System error beep (not my audio)
Test 2: Professional Apps
Tested ADHDAlarms (popular AlarmKit example by jacobsapps) https://github.com/jacobsapps/ADHDAlarms
Their airhorn.mp3 custom sound: same error beep (not an airhorn)
Their default sound: works perfectly
Test 3: Device Testing
Physical iPhone (iOS 26.0 - 23A341): broken
iOS Simulator: broken
Not device-specific
Files are found correctly, but the actual audio file is never played. Instead, you hear what sounds like a system error/cancellation tone.
What I've Eliminated
Not a Library/Sounds vs Bundle issue (both broken)
Not a file format issue (.mp3, .caf, .m4a all broken)
Not an implementation issue (professional apps broken too)
Not a device issue (simulator and device both broken)
Not a file size issue (5KB to 2MB all broken)
The Documentation Lie:
Apple's docs for AlertConfiguration.AlertSound.named(_:) state:
"Choose a file that's in your app's main bundle or the Library/Sounds folder"
https://developer.apple.com/documentation/activitykit/alertconfiguration/alertsound/named(_:)
Both locations are broken.
Tested on: iOS 26.0 (23A341), Xcode 26.0.1, Swift 6.2
Impact:
This affects any app trying to:
Provide personalized wake-up sounds
Use custom alarm tones
Create meditation/sleep apps
Differentiate from default iOS alarms
Current Status:
Multiple bug reports filed: FB19900024, FB18237648, FB19779004
Apple engineer claimed "fixed in latest beta" in August
Still broken in iOS 26.0 stable (September)
Workaround:
None that I know of. You must use .default sound.
For apps needing custom audio, play it with AVAudioPlayer after the alarm fires and user opens the app.
Question:
Has ANYONE gotten custom AlarmKit sounds working in iOS 26.0 stable? If so, plzzz help I'd be so grateful.
Hi,
We have a use case where our app needs to send repeated push notifications (both normal and critical alerts) to inform the user about a critical device state and grab their attention.
Since iOS doesn’t allow us to schedule local notifications beyond 30 seconds, I need to send multiple pushes from the server side.
My questions are:
Is there any documented limit on how many push notifications can be sent back-to-back before Apple starts throttling or restricting them?
Are critical alerts treated differently from normal notifications in terms of delivery restrictions or frequency limits?
Is there a recommended approach for handling scenarios where repeated urgent notifications are necessary to keep the user informed?
I want to make sure I’m following Apple’s guidelines and not risking rejection during review.
Hi Apple team,
We’re shipping a Live Caller ID Lookup extension on iOS 18 and have a question about the automatic refresh of configuration/PIR parameters.
Questions
1. Is there any documented interval/TTL (min/max) for the system’s automatic refresh of /config and PIR parameters, or is it entirely opportunistic (battery/network/usage)? I can’t find a cadence in the IdentityLookup docs.
2. Does iOS honor server cache headers (e.g., Cache-Control/Expires) to influence when it re-fetches?
3. Which events also trigger a refresh (enable/disable in Settings, OS/app update, device reboot, token/epoch change)?
4. Are there rate limits or best-practice limits for calling refreshExtensionContext and refreshPIRParameters?
Topic:
App & System Services
SubTopic:
Notifications
Tags:
Extensions
SMS and Call Reporting
CallKit
There's a list of bug reports:
FB19778882
FB19813796
FB19852724
FB19767262
FB20378888
FB20379383
FB20394663
Me and many other users have issue with push notifications. To reproduce this you should do this steps:
Lock iPhone and make it idle for 10+ minutes;
Send any message from other device via third-party app that uses push notifications (WhatsApp, Telegram and etc.);
After few attempts you can see, that messages don't deliver. They delivers immediately when I unlock iPhone or go to the app.
This bug reproduces on iOS 18.7 and 27.
As I think iPhone goes to deep sleep after 10+ minutes after it locked and don't get push notifications. I've tried everything: many of settings, DFU without backup, but nothing helps to resolve this issue. Pay attention, please, cause this bug is very annoying and present on iOS 18.7 (that is the last for many devices) and latest iOS 26. Thanks!
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:
they work on another drives (iPad) with no issues. Sometimes they are very delayed, sometimes almost instant. But usually they work.
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.