I'm facing a strange issue where my Next.js application hosted on Vercel crashes on iPhones 12, 13, and 14, but works perfectly on iPhones 15 and 16.
✅ Setup:
- Hosting: Vercel
- Next.js: 15.3.2
- React: 19.0.0
- TailwindCSS: 4 (beta)
- Animation Libraries:
- framer-motion@12.16.0
- lottie-react@2.4.1
- lottie-web@5.13.0
- @lordicon/react@1.11.0
📦 My package.json (partial):
"dependencies": {
"@lordicon/react": "^1.11.0",
"framer-motion": "^12.16.0",
"lottie-react": "^2.4.1",
"lottie-web": "^5.13.0",
"next": "15.3.2",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start"
}
🔍 Behavior:
- The site loads normally on desktop Chrome, Safari, Android phones, and newer iPhones (15/16).
- On iPhone 12/13/14 (tested with Safari), the page crashes or becomes unresponsive.
- I haven't applied any specific polyfills or browser compatibility flags yet.
- No custom server or middleware — just a regular Vercel deploy.
❓Questions:
- Why would this crash only on older iPhones?
- Could framer-motion or lottie-web animations cause Safari (WebKit) crashes?
- Do I need to add browser compatibility settings for iOS 15/16?
- Are there known issues with React 19 or Next.js 15 on older Safari engines?
Any guidance or shared experiences would really help. Let me know if I should share a link or debug logs.
Top comments (1)
The first suspect ought to be JavaScript features that got released post version 15.
A usual suspect, lately, has static initialization blocks but that was introduced in 16 IIRC.
Are you able to capture error stacks? You can connect your phone to a Mac and open remote dev tools there.