APNs push never delivered — even a direct FCM test message fails

Push notifications are never delivered to my iOS app and I've exhausted the usual checks.

Bundle: com.thomasmanfredini.lafrench, Team 7TWV3839F3, TestFlight (production). Architecture: Firebase Cloud Messaging (the app registers an FCM token; Firebase relays to APNs). Key symptom: a direct FCM test message (Firebase Console → "Send test message") to a valid registration token delivers nothing (app killed, lock screen). Already verified (all correct): notification permission ON (incl. Lock Screen); TestFlight build with aps-environment=production; GoogleService-Info.plist matches the Firebase iOS app (project la-french, sender 649219813428); FCM token generated and valid; APNs Auth Key in Firebase with correct Key ID + Team ID — tried two keys (one Production, one Sandbox & Production), neither delivers; bundle ID matches the APNs topic.

Since even a direct FCM test fails with a valid token and correct config, what could prevent APNs from delivering to this app? What should I check next (account-level APNs, Push Notifications capability on the App ID, etc.)? Thanks!

I'm afraid there is little information about the issue you are reporting. You don't mention the OS version or the Xcode version.

Push notifications are never delivered to my iOS app and I've exhausted the usual checks.

I don't know what you mean by checks. The checks are regarded as M1 money in the U.S. and other countries where one can write a person check to make a payment.

You should first check with Firebase to see what errors they are seeing.

Thanks for the reply — by "checks" I just meant the standard troubleshooting/verification steps 🙂

Environment:

iPhone: iOS 26.5 Xcode 26.5 (17F42), macOS 26.5.1 Flutter 3.44.2 — the app uses firebase_messaging for push. Core issue: a direct FCM test message (Firebase Console → "Send test message") to a valid registration token from the device delivers nothing (app killed, lock screen, notification permission fully ON).

Verified correct: TestFlight build with aps-environment=production; GoogleService-Info.plist matches the Firebase iOS app (project la-french, sender 649219813428); valid FCM token; APNs Auth Key in Firebase with correct Key ID + Team ID — tried two keys (one Production, one Sandbox & Production), neither delivers. Bundle com.thomasmanfredini.lafrench, Team 7TWV3839F3.

Since even a direct FCM test fails with a valid token and correct config, what could prevent APNs from delivering to this app/account? What should I check next? Many thanks for your support> Thomas

Update — solved! The issue was the FCM message format, not the token/key/config.

A data-only FCM message is never displayed by iOS when the app is killed. I confirmed this by sending a direct FCM v1 message to the device token with a notification block + an apns override (apns.payload.aps.alert) — it displays perfectly.

So the FCM token, APNs Auth Key, Firebase config and capability were all correct the whole time. The fix was simply to include a notification / apns payload instead of sending data-only.

Thanks for the tip to check the FCM response — the HTTP 200 (no THIRD_PARTY_AUTH_ERROR / UNREGISTERED) is exactly what confirmed the delivery path was fine and isolated it to the payload. Posting the resolution in case it helps others. 🙏

APNs push never delivered — even a direct FCM test message fails
 
 
Q