Question

Expo push notifications arrive on Android, never on iOS

Open · 71 viewsasked by ben_mobile

Same code, same Expo push token flow. Android phones get the notification within a second. iPhones get nothing, no error from the Expo API.

What I’ve tried

Checked the token is an ExponentPushToken[...]. Rebuilt with eas build --profile production.

Comment
Did you upload an APNs key to your EAS credentials? Android works without one, iOS just drops the notifications silently. lukas_b

1 answer

hiro_t

lukas_b is very likely right, and you can confirm it instead of guessing. The Expo push API answers with a ticket right away, and a ticket saying ok only means Expo accepted the message. Whether Apple accepted it is in the receipt, which you fetch a few minutes later with the ticket id:

const receipts = await expo.getPushNotificationReceiptsAsync([ticketId]);
// { status: 'error', details: { error: 'InvalidCredentials' } }

InvalidCredentials means no or a wrong APNs key. Fix it with eas credentials → iOS → Push Notifications, then send again. No new build needed for the key itself.

If receipts come back ok and the phone still shows nothing, check that the app actually asked for permission on iOS. Android 12 and older grant notifications without asking; iOS never does.

Comment
Receipts say InvalidCredentials. So it's the APNs key. Didn't know about receipts at all, setting up the key tonight. ben_mobile