Hello,
I'm trying to use critical alerts on the CarPlay, but I'm facing couple of issues:
Sound of critical alerts is not played by the CarPlay's speakers (played by the iPhone's speakers)
Tapping on a critical alert doesn't open the app like other notifications.
Critical alerts of the app are always shown if the CarPlay is connected, even if the app doesn't have the CarPlay entitlement.
didReceive is not called if the user taps on a notification on the CarPlay.
Any help would be greatly appreciated
Notifications
RSS for tagLearn about the technical aspects of notification delivery on device, including notification types, priorities, and notification center management.
Post
Replies
Boosts
Views
Activity
When I request channel list for bundle id "com.apnspush.LiveActivityPushDemo", the request returns "TopicMismatch".
Then when I request channel list for bundle id "com.apnspush.liveactivitypush", the request return is normal.
I have tried all my bundle ids that include capital letters, they all failed with "TopicMismatch".
Does anyone know the reason?
curl -v -X GET \
-H "authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg" \
-H "apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127" \
--http2 \
https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.LiveActivityPushDemo/all-channels
Note: Unnecessary use of -X or --request, GET is already inferred.
* Host api-manage-broadcast.sandbox.push.apple.com:2195 was resolved.
* IPv6: (none)
* IPv4: 17.138.176.4
* Trying 17.138.176.4:2195...
* Connected to api-manage-broadcast.sandbox.push.apple.com (17.138.176.4) port 2195
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Request CERT (13):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Certificate (11):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; O=Apple Inc.; CN=api-manage-broadcast.sandbox.push.apple.com
* start date: May 30 17:31:41 2024 GMT
* expire date: Apr 10 00:00:00 2025 GMT
* subjectAltName: host "api-manage-broadcast.sandbox.push.apple.com" matched cert's "api-manage-broadcast.sandbox.push.apple.com"
* issuer: CN=Apple Public Server RSA CA 12 - G1; O=Apple Inc.; ST=California; C=US
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.LiveActivityPushDemo/all-channels
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api-manage-broadcast.sandbox.push.apple.com:2195]
* [HTTP/2] [1] [:path: /1/apps/com.apnspush.LiveActivityPushDemo/all-channels]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg]
* [HTTP/2] [1] [apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127]
> GET /1/apps/com.apnspush.LiveActivityPushDemo/all-channels HTTP/2
> Host: api-manage-broadcast.sandbox.push.apple.com:2195
> User-Agent: curl/8.7.1
> Accept: */*
> authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg
> apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
>
* Request completely sent off
< HTTP/2 403
< apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
<
* Connection #0 to host api-manage-broadcast.sandbox.push.apple.com left intact
{"reason":"TopicMismatch"}%
curl -v -X GET \
-H "authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg" \
-H "apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127" \
--http2 \
https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.liveactivitypush/all-channels
Note: Unnecessary use of -X or --request, GET is already inferred.
* Host api-manage-broadcast.sandbox.push.apple.com:2195 was resolved.
* IPv6: (none)
* IPv4: 17.138.176.4
* Trying 17.138.176.4:2195...
* Connected to api-manage-broadcast.sandbox.push.apple.com (17.138.176.4) port 2195
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Request CERT (13):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Certificate (11):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; O=Apple Inc.; CN=api-manage-broadcast.sandbox.push.apple.com
* start date: May 30 17:31:41 2024 GMT
* expire date: Apr 10 00:00:00 2025 GMT
* subjectAltName: host "api-manage-broadcast.sandbox.push.apple.com" matched cert's "api-manage-broadcast.sandbox.push.apple.com"
* issuer: CN=Apple Public Server RSA CA 12 - G1; O=Apple Inc.; ST=California; C=US
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api-manage-broadcast.sandbox.push.apple.com:2195/1/apps/com.apnspush.liveactivitypush/all-channels
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api-manage-broadcast.sandbox.push.apple.com:2195]
* [HTTP/2] [1] [:path: /1/apps/com.apnspush.liveactivitypush/all-channels]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg]
* [HTTP/2] [1] [apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127]
> GET /1/apps/com.apnspush.liveactivitypush/all-channels HTTP/2
> Host: api-manage-broadcast.sandbox.push.apple.com:2195
> User-Agent: curl/8.7.1
> Accept: */*
> authorization: bearer eyJhbGciOiJFUzI1NiIsImtpZCI6IkdZSDM5WEZMREEifQ.eyJpYXQiOjE3Mjg3MDM4MDksImlzcyI6IjNXSkdFRjI4R1kifQ.wruX6J4qaovq2X-ZlO7g0YyMWjt50g8YoMoZ4G9ZsLDI5wC8u7PFTaG05BmDvbEzLpzrK9ifwPeo5BJ2eZ3hTg
> apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
>
* Request completely sent off
< HTTP/2 200
< apns-request-id: 2288cf3f-70d8-46a6-97d7-dd5d00867127
<
* Connection #0 to host api-manage-broadcast.sandbox.push.apple.com left intact
{"channels":["vtVPwIhLEe8AAG79CdMNuQ=="]}%
From last 10 days, apns suddenly stopped working. We have raised the firewall request from our servers to apple servers. Even then it's not working. Could you please advise if there is anything changed in this api. Please take it as high priority. Thank you.
My app uses custom notifications with custom images. Why do these images get mixed up with those from other apps, causing my notifications to display images from other apps?
`INImage *avatarImage = [INImage imageWithImageData:imageData];
NSPersonNameComponents *nameComponents = [[NSPersonNameComponents alloc] init];
nameComponents.nickname = content.title;
INPersonHandle *handle = [[INPersonHandle alloc] initWithValue:nil type:INPersonHandleTypeUnknown];
INPerson *messageSender = [[INPerson alloc] initWithPersonHandle:handle
nameComponents:nameComponents
displayName:content.title
image:avatarImage
contactIdentifier:nil
customIdentifier:customIdentifier
isMe:NO
suggestionType:(INPersonSuggestionTypeNone)];
INSpeakableString *speakableString = [[INSpeakableString alloc] initWithSpokenPhrase:content.subtitle.length ? content.subtitle : @""];
INSendMessageIntent *intent = [[INSendMessageIntent alloc] initWithRecipients:@[messageSender]
outgoingMessageType:(INOutgoingMessageTypeOutgoingMessageText)
content:content.body
speakableGroupName:speakableString
conversationIdentifier:identifier
serviceName:nil
sender:messageSender
attachments:nil];
[intent setImage:avatarImage forParameterNamed:@"speakableGroupName"];
INInteraction *interaction = [[INInteraction alloc]initWithIntent:intent response:nil];
interaction.direction = INInteractionDirectionIncoming;
[interaction donateInteractionWithCompletion:nil];
UNNotificationContent *_content = [content contentByUpdatingWithProvider:intent error:nil];
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
content:_content
trigger:trigger];
[UNUserNotificationCenter.currentNotificationCenter addNotificationRequest:request withCompletionHandler:completionHandler];`
I am looking for advice for debugging a wallet pass not updating for some customers after successfully posting an APNS notification (pass identifier as topic, no expiration, priority 10).
Is there an exhaustive list of reasons for a wallet pass not updating or a guide for making sure updates happen reliably? Are there are any guarantees made as to when the pass is updated? We noticed it is either never updating or the update happens much later for some customers. Usually toggling "Automatic Updates" in Pass Details updates the pass immediately for affected customers.
Can it be caused by an error in the implementation of the Wallet Passes Web Service? We generate passes on the fly as a response to /v1/passes/{passTypeIdentifier}/{serialNumber}. I noticed that we also sometimes receive HEAD requests to this endpoint despite the documentation only mentioning the GET method. I was previously returning a HTTP status code 405 (Method Not Allowed). I have now updated it to also respond with headers (Content-Type, Content-Disposition and Last-Modified) for the pass for HEAD requests, but I don't know if it makes a difference.
Here is a list of issues on the customer side I was thinking of:
No connection to the internet
Low power mode (does it prevent or throttle updates?)
What happens if there is an error? Does it keep trying or does it just fail silently? In the latter case it might make sense to keep sending APNS notifications until the pass is requested successfully.
I know that you can use the PassKit framework in iOS apps to update (replace) passes. Would this be more reliable than a stand-alone Wallet pass?
Is there a way to to add a key for imageURL below that shows as image preview on the right side of a push notification or do i need to create a Notification Content Extension to make it work?
`const message = {
apns: {
payload: {
aps: {
'mutable-content': 1,
alert: {
title: title,
body: body,
image: imageURL,
},
},
},
fcm_options: {
image: imageURL,
},
},
data: {
articleId: articleId,
'media-url': imageURL,
},
tokens: tokens,
};`
I'm getting the image through, but just if the user long presses on the push notification and then it appears below, but i want it to look like in the screenshot:
Thanks
Hi
After uploading a problematic version of our app to TestFlight my iphone does not get push notification anymore for our app. Other users are not affected.
I deleted the app and installed the version from the appstore and still i do not get push notifications to the app.
anyone that installed the version on testflight can't get push notification even if they went back to the original version from the app store.
also tried to shutdown / startup the phone... no change.
Any idea what went wrong and how to fix it?
Hi there,
I observed situations where a notification won't get delivered to an iPhone that is offline at the moment the notification request is made to the APNs, and gets back online a few hours later.
It does not appear to be a fully repeatable issue, but it does happen much more than sporadically.
I know the storage of notification by APNs is provided as a best-effort service and is not guaranteed, but I do believe there is an issue that maybe is worth looking at.
I controlled for all aspects that could explain the issue:
APNs return a success code on the request
the apns-expiration timestamp is not reached when the device gets back online
apns-priority is set to 10
target device was in charge while offline
no other notification were sent for the device
I provided detailed logs in feedback FB15381079
Also sharing a remark on this piece of the APNs documentation: "When you send multiple notifications to the same device for a bundle ID, APNs selects only one notification to store in a non-deterministic way."
It would be very useful to confirm whether silent push notification may lead APNs storage to dismissed an alert notification in favor of the silent push.
Thank you
If I have data on server that is updated periodically (e.g., daily or weekly), and I want to have that data sync'd to iOS app, what is best way? I want to make sure it will get updated when app is in foreground, background, swiped away (terminated), or following a phone restart. The two ways I'm thinking of are PushKit and User Notifications.
I'm currently using User Notifications, but I am finding that sometimes the notification doesn't get processed (haven't yet determined reliable conditions for duplicating this problem).
I'm mainly wondering if, given the use case (occasional updates that ideally are processed in background ASAP), this is the best approach.
Hi, hope you're all doing well. I have a real brain-cracker here... Have been looking into this for the past 20 hours, but can't figure it out.
We built an iPhone app that essentially functions as a shell around a PWA Web-App using WebView. The tricky part here to set things up was getting the Push Notifications to work. Eventually we got this working though (with help of Firebase), and the app has been working great for the past 7 months. Now, all of a sudden as it seems, when users first open up the app, there's no FCM token generated and passed on to the WebView instance running javascript. Or at least, the listening event ('push-token') no longer gets fired.
Users who already have their FCM token generated and stored earlier on, receive push notifications without any issues. It's just that no new FCM tokens seem to be generated - or at least no longer passed to the WebView's javascript code. I know this for a fact as my tests turn out that the following event (present in my PWA Web-App JS code) no longer gets fired. Again, this worked fine before. I have NOT updated the native app since 6-7 months.
`/* LISTEN FOR FCM (PUSH MESSAGES) TOKEN FROM NATIVE (IOS) SHELL: */
window.addEventListener('push-token', function(event) {
//alert("Push Token registration event called from native shell");
if (event && event.detail) {
var token = event.detail;
window.fcmPushMessageToken = token;
localStorage.setItem('fcmPushMessageToken', token);
//alert("Received FCM token: " + token);
registerDeviceForPushMessages();
}
});`
Hereé the part in my native iOS code that used to call this event from within the native iOS shell:
func handleFCMToken(){
DispatchQueue.main.async(execute: {
Messaging.messaging().token { token, error in
if let error = error {
print("Error fetching FCM registration token: \(error)")
checkViewAndEvaluate(event: "push-token", detail: "ERROR GET TOKEN")
} else if let token = token {
print("FCM registration token: \(token)")
checkViewAndEvaluate(event: "push-token", detail: "'\(token)'")
}
}
})
}
func checkViewAndEvaluate(event: String, detail: String) {
if (!EPDriversApp2.WebView.isHidden && !EPDriversApp2.WebView.isLoading ) {
DispatchQueue.main.async(execute: {
EPDriversApp2.WebView.evaluateJavaScript("this.dispatchEvent(new CustomEvent('\(event)', { detail: \(detail) }))")
})
}
else {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
checkViewAndEvaluate(event: event, detail: detail)
}
}
}
Again, I have not updated the native iOS app OR the WebApp's code. This just stopped functioning all of a sudden.
One "weird" thing I noticed that there's no Provisiong Profile associated with the app. I'm not sure whether this was ever the case before, to be honest. Is this even mandatory? Can not having a Provisiong Profile associated with the app effect the ability of an already pusblished app for generating Push Notification tokens?
I created a local notification as follows:
func scheduleNotification(title: String, subtitle: String = "", date: Date, id: String) {
// Extract the components from the date
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minute = calendar.component(.minute, from: date)
let second = calendar.component(.second, from: date)
// Set the extracted components into DateComponents
var dateComponents = DateComponents()
dateComponents.hour = hour
dateComponents.minute = minute
dateComponents.second = second
let content = UNMutableNotificationContent()
content.title = title
content.subtitle = subtitle
content.sound = UNNotificationSound.default
let action1 = UNNotificationAction(identifier: Constants.NOTIFICATION_ACTION_IDENTIFIER_1.id, title: Constants.NOTIFICATION_ACTION_IDENTIFIER_1.label, options: [])
let action2 = UNNotificationAction(identifier: Constants.NOTIFICATION_ACTION_IDENTIFIER_2.id, title: Constants.NOTIFICATION_ACTION_IDENTIFIER_2.label, options: [])
let category = UNNotificationCategory(identifier: "reminderCategory", actions: [action1, action2], intentIdentifiers: [], options: [])
UNUserNotificationCenter.current().setNotificationCategories([category])
content.categoryIdentifier = "reminderCategory"
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)
let request = UNNotificationRequest(identifier: id, content: content, trigger: trigger)
// add our notification request
UNUserNotificationCenter.current().add(request)
}
and I also have
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
// Handle foreground presentation options
completionHandler([.sound, .badge])
}
but for some reason the notification only shown on the phone. I've made sure that the phone is locked, apple watch is unlocked and also the notification setting in the watch app for this app is set to mirror.
I have read from previous posts in the forum and in StackOverflow that the limitation of 64 notification is still present with the current iOS18 version right? Inside testflight I was not able to reproduce this limit and was wondering if it only applies to the AppStore.
Is it only a limit of scheduled notifications or is there also a limit of delivered notifications ? I find the Apple documentation lacking detail in this regard. If the latter is the case, I will not bother building a notification manager to deal with frequent notification scheduling.
thank you in advance
S.
Hi. all
Now we test our app in iOS18. When app in foreground mode, the app will present our alert controller twice.We used the follow test(send local notification):
UNUserNotificationCenter.current().add(request, withCompletionHandler: { (error) in
if error == nil {
print("")
}
})
also have same issue.
Debug code, we found the below method have been called by system twice.
(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler API_AVAILABLE(macos(10.14), ios(10.0), watchos(3.0), tvos(10.0));
Anyone have the same issue? Do you have any idea?
Thank you .
I've spent over a day on this so I'm hoping someone on here has some idea as to what is going on for me. I've implemented push notifications in my app, but when I send a notification to a device, none of the receiving function are triggered.
When the app is in the background, the notification arrives correctly, and when tapped it correctly launches the app - but the didReceiveRemoteNotification function is never triggered, so I'm unable to handle/react to the notification.
When the app is in the foreground, neither the willLaunch or didReceive functions are triggered. I'm setting the UNUserNotificationCenterDelegate in the willFinishLaunchingWithOptions function, and when I monitor the app via the console, it shows no errors and shows willPresentNotification delivery succeeded
I have updated the Background Modes to include background fetch, background processing, and remote notifications. I have also tested this on both the Xcode simulator and a physical device with the same results. I've also tested this with push notifications coming from my server, push notifications coming from the CloudKit console, and just dropping a JSON file onto the simulator. All resulted in the same behaviour.
Does anyone have any idea why these functions might not be triggered??
We are recently started the migration from Certificate based approach push notification configuration to Token bases (APNS Keys) approach push notifications.
From Server side, its pretty straight forward that we need to use APNS Keys.
But We are facing one issue where we are not sure whether we can expire the existing push notification certificate that we are using so far or not.
If I expire the existing certificate, then it will also be removed from App Id configuration capabilities as shown below and when I create the provisioning profile for this Bundle Id, it doesn't contain the push notification capability and also shows error in the Xcode while using the profile.
can anyone help on this how to resolve this issue ? or any process or steps to follow for this migration ?
Thanks in advance.
Subject: Seeking Native iOS Solution for Push Notification Acknowledgement and User Interaction Tracking
I’m exploring whether there is a native solution in iOS to track the confirmation/acknowledgement of a received push notification on the device, as well as any user interaction with it (e.g., tapping or dismissing the notification). Although I’ve come across multiple discussions on this topic suggesting that it’s not possible, I’d like to know if there have been any recent updates or enhancements in iOS that provide this capability.
Has anyone found a reliable approach or workaround for this? Any insights would be appreciated!
Thanks!
after my phone receives a notification, the screen stays on. i Waited 15 minutes and did not go off (fully lid) battery drained 5%. Always on display was set to OFF. Restarting the phone solved the issue, but home & loch screen has been my No..1 battery use since I have the iPhone 16 (2 weeks). never saw that app using battery in the previous 10 year of iPhone use. My new iphone 16 pro max does not appear to have much more battery life than my previous 12 pro max with battery cap at 83%
I want to add Live Activities to my e-commerce app to show the estimated delivery ETA when an order is out for delivery, with the Live Activity initiated from the server.
Issue 1: How can I consistently obtain a pushToStart token when a user logs in to my e-commerce app? Currently, I’m considering starting and ending a dummy Live Activity to retrieve the token. Is there a better way to trigger pushToStartTokenUpdates and send the token to my server?
Issue 2: How do I properly invalidate the pushToStart token when a user logs out, ensuring the next user doesn’t inherit the same token? Ideally, I don't want the user to wait until the token is automatically invalidated before logging out.
I have been experiencing a consistent problem when connecting to a bluetooth device (Speaker, Vehicle, Etc.) where the music cuts-out every time I receive a notification or my Iphone screen turns on or off.
This never happened before the update. I have tried restarting, downgrading to previous IOS versions and reupdating to the latest.
No luck, unfortunately.
I thought this might be due to the devices, but this happens when playing music through my device as well. I have checked the notification settings and haven't found anything that fixes this problem.
Any assistance would be much appreciated.
We experienced an issue with delayed App Store Server notifications for an Auto-Renewable Subscription purchase in our app.
On September 27, 2024, at 22:28:28 GMT+0900, a user successfully purchased a Premium membership subscription (transaction ID: 190002223966278, webOrderLineItemId: 190001007274949).
However, our server did not receive the corresponding App Store notification for this transaction after purchase.
The App Store Server Notification was only received 66 minutes later, at 23:35:16 (transaction ID: 190002224000004, webOrderLineItemId: 190001007274949).
The delayed notification contained a different transaction ID than the initial purchase.
We would like to inquire about the cause of this delay and request assistance in understanding why the notification took 66 minutes to be delivered to our server, instead of arriving immediately after the transaction was completed.
Additionally, we would appreciate your guidance on how to prevent or mitigate such delays in the future, ensuring a seamless experience for our users.
Are there any best practices or recommended approaches we should implement to handle potential notification delays more effectively?
We have provided detailed information about the received notification and the related transactions in the Feedback Assistant (FB15330451).
Thank you for your assistance in resolving this matter.
Key Details
Purchase time: 2024-09-27T22:28:28 GMT+0900 (1727443708000)
Notification received: 2024-09-27T23:35:16 GMT+0900 (1727447716463)
Delay: 66 minutes and 48 seconds
Initial Purchase Transaction ID: 190002223966278
Initial Purchase Web Order Line Item ID: 190001007274949
Transaction ID in Delayed Notification: 190002224000004
Web Order Line Item ID in Delayed Notification: 190001007274949
Additional info
Bundle ID: com.reppley.ReppleyApp
SKU: com.reppley.ReppleyApp
Feedback Assistant Number: FB15330451