Journal

Expo Push Notifications Not Working From Lovable? Fix It

Push that works nowhere is usually a missing setup step, not a bug. The capability, APNs, permission, and token registration all have to line up.

Expo Push Notifications Not Working From Lovable? Fix It: a glossy App Store icon on a blue, pink and orange gradient with bubbles

TL;DR

Expo push notifications failing from a Lovable export are almost always a setup gap: the push notifications capability not enabled, APNs not configured in EAS, permission never requested, or the device token not registered with your server. Work the chain in order, capability, APNs credentials, permission prompt, token registration, then test on a real device (not the simulator). Build the UI from a free reference and verify the full push path before relying on it.

Push notifications dead in your Lovable export? The short answer: push that works nowhere is almost always a missing setup step, not a code bug. The capability, APNs credentials, the permission prompt, and token registration all have to line up, and one missing link kills the whole chain. Work them in order and test on a real device. Build the UI from a free VP0 design, the free iOS design library for AI builders, and verify the full push path before you rely on it. To put that in perspective, about 76% of developers now use or plan to use AI tools in their work.

Who this is for

This is for developers whose Lovable-exported Expo app does not receive push notifications, and who want the specific setup chain and where it breaks.

Why push silently fails

Push is a chain, and it is silent when a link is missing. The push notifications capability must be enabled on the app. APNs credentials must be configured in EAS so Apple will deliver. The app must request notification permission and the user must allow it. The device push token must be registered with your server so you know where to send. And you must send through the right environment, dev or production. Lovable exports often miss one of these, and the simulator does not receive remote push at all. The Expo push notifications documentation covers the setup, and Apple Push Notification service is the delivery layer.

Link in the chainIf missingFix
Push capabilityNo deliveryEnable the capability
APNs credentialsApple will not sendConfigure in EAS
PermissionNo tokenRequest and read the result
Token registrationServer cannot targetRegister with your backend
Dev vs prodWorks in one onlySend to the matching environment

Build the UI free with a VP0 design

The notification UI and settings are yours to build cleanly. Build from a VP0 reference:

Build an Expo React Native notifications setup from this design: [paste VP0 link]. An in-context permission prompt, a notifications settings screen, and the token registration flow with your backend, handling granted, denied, and undetermined states. Match the palette and spacing from the reference, and generate clean code.

For related Lovable and Expo fixes, see a Lovable export missing Info.plist in Xcode, does Lovable handle iPhone and iPad screen sizes, the Bolt.new export to iOS App Store fix, and a Rork Xcode build failed solution.

Work the chain on a real device

Debug top down and on hardware. Confirm the push capability is enabled and APNs credentials are set in EAS. Request permission in context and check the result, because a denied or never-requested permission means no token. Confirm the device token is actually registered with your server. Then send a test push through the environment matching your build, dev or production, since a mismatch is a classic “works for me, not in production” trap. Always test on a physical device, never the simulator. Once each link is verified, push works reliably, and the fix is setup, not rewriting code.

Common mistakes

The first mistake is testing push on the simulator, which does not receive it. The second is APNs credentials not configured in EAS. The third is never requesting permission or ignoring the result. The fourth is the token not registered with the server. The fifth is a dev versus production environment mismatch.

Key takeaways

  • Push failing from a Lovable export is almost always a setup gap, not code.
  • The chain: capability, APNs credentials, permission, token registration, environment.
  • Test on a real device; the simulator does not receive remote push.
  • A dev versus production mismatch is a classic cause of “works in dev, not prod.”
  • Build the notifications UI from a free VP0 reference and verify the full path.

Sources

Frequently asked questions

Why are Expo push notifications not working from my Lovable export? Almost always a setup gap: capability not enabled, APNs not configured, permission not requested, or token not registered. Work the chain and test on a real device.

How do I fix push notifications in an Expo app? Enable the capability, configure APNs in EAS, request permission, register the token with your backend, and send to the correct environment, testing on hardware.

Why do push notifications work in development but not production? Usually a dev versus production APNs mismatch, so a token from one environment will not receive pushes sent through the other. Send to the matching environment.

Do push notifications work in the iOS Simulator? Remote push generally requires a physical device. Test on real hardware.

What the VP0 community is asking

Why are Expo push notifications not working from my Lovable export?

Almost always a setup gap, not code: the push notifications capability is not enabled, APNs credentials are not configured in EAS, the app never requested permission, or the device token is not registered with your server. Work that chain in order and test on a real device, since the simulator does not receive push.

How do I fix push notifications in an Expo app?

Enable the push notifications capability, configure APNs credentials in EAS, request notification permission and read the result, register the device push token with your backend, and send through the correct (dev vs prod) environment. Test on a physical device, not the simulator.

Why do push notifications work in development but not production?

Usually a dev versus production APNs environment mismatch: tokens and certificates differ between environments, so a token registered in one will not receive pushes sent through the other. Make sure your server sends to the environment matching the build.

Do push notifications work in the iOS Simulator?

Remote push generally requires a physical device. Test push on real hardware; relying on the simulator is a common reason people think push is broken when the setup is actually fine.

Part of the React Native & Expo: Mobile Frontend Architecture hub. Browse all VP0 topics →

Keep reading

Fix Replit Agent React Native Expo Crashes: Triage: the App Store logo on a glass tile over a blue gradient with bubbles
Workflows 5 min read

Fix Replit Agent React Native Expo Crashes: Triage

Triage Replit Agent React Native Expo crashes by symptom: bundler failures, red-screen errors, native-module deaths, and how to stop the agent's fix loop.

Lawrence Arya · June 5, 2026
Pod Install ffi Error on Apple Silicon: The Real Fix: the App Store logo as a glossy glass icon on a purple and blue gradient with floating bubbles
Workflows 5 min read

Pod Install ffi Error on Apple Silicon: The Real Fix

Fix the pod install ffi incompatible-architecture error on Apple Silicon: why the Ruby ffi gem breaks, the Homebrew fix, and the Rosetta trap to avoid.

Lawrence Arya · June 5, 2026
Expo Missing Purpose String Rejection: The Real Fix: a vivid neon 3D App Store icon on an orange, pink and blue gradient
Workflows 5 min read

Expo Missing Purpose String Rejection: The Real Fix

Fix the React Native Expo missing purpose string rejection (ITMS-90683): which NSUsageDescription key, where it lives in app.json, and strings that pass review.

Lawrence Arya · June 5, 2026
Bolt.new React Router Errors in Expo? Swap the Router: a vivid neon 3D App Store icon on an orange, pink and blue gradient
Workflows 5 min read

Bolt.new React Router Errors in Expo? Swap the Router

Bolt.new app throwing React Router DOM errors when you move to Expo mobile? React Router is for the web. Replace it with Expo Router or React Navigation.

Lawrence Arya · June 1, 2026
FlatList Memory Lag With Maps in React Native: Fixes: the App Store logo as a glossy glass icon on a purple and blue gradient with floating bubbles
Workflows 5 min read

FlatList Memory Lag With Maps in React Native: Fixes

Fix FlatList memory and lag in React Native map screens: the map-per-row trap, memoized rows, windowing settings, and when FlashList is the real answer.

Lawrence Arya · June 5, 2026
Fixing Claude React Native Reanimated Errors, Fast: the App Store logo as a frosted glass icon on a pink and blue gradient with bubbles
Workflows 5 min read

Fixing Claude React Native Reanimated Errors, Fast

The Reanimated errors Claude-generated code hits most: the babel plugin rule, version mismatches, worklet violations, and the prompts that fix each one.

Lawrence Arya · June 5, 2026