When testing Figma prototypes on iOS devices through Maze, you may experience unexpected restarts or crashes on mobile (both the app and web). This article explains why this happens and how to work around it. Please note that this affects any mobile interface that embeds Figma prototypes, not just Maze.
Why This Happens
This issue stems from iOS Safari's strict memory limitations when rendering embedded Figma prototypes. When a Figma prototype loads on an iPhone, it's rendered through Safari's WebKit engine, which has conservative memory allocation limits to protect device performance. Figma files—especially those with complex interactive elements—can require significant computational memory to render, which can exceed these limits and trigger an automatic restart.
This can affect:
- Figma prototypes opened directly on iOS mobile devices (without Maze involved)
- Figma file rendered in Maze mobile app
- Figma file rendered in Maze mobile web
Key contributors to high memory usage include:
- Large dynamic components with multiple states
- Heavy text rendering
- Large media files
- Glass effect
- Complex prototype animations (e.g., Smart Animate)
Important:
This isn't simply about file size. A small Figma file with complex dynamic components can consume more memory than a larger file with static elements. The issue is about computational memory required to render the prototype, not the file's storage size.
Recommended Solutions
We recommend the following approaches to ensure reliable testing:
1. Optimize Your Figma File
Reduce computational complexity where possible:
- Simplify or flatten dynamic components
- Compress or reduce media file sizes
- Remove unnecessary visual effects (glass effects, heavy shadows, blurs)
- Create a dedicated testing file that includes only the essential screens and interactions
- Remove hidden layers and unused assets
2. Prioritize Android Participants
Android devices are not affected by this limitation and will provide the most consistent testing experience for Figma prototypes.
How to implement: When recruiting participants, use Maze’s Premium Recruitment to target Android users directly, or use Prolific with a screener question to filter for Android devices.
3. Try using the Website Block Instead of Prototype Block
Maze internal testing suggests the Website block has slightly better stability than the Prototype block on iOS, though results vary and crashes can still occur.
Worth trying if:
- You're experiencing high crash rates with the Prototype block
- Quantitative data (heatmaps) is less critical for this specific study
How to implement:
- In your test setup, select the Website block
- Paste your Figma prototype's share link
- Trade-off: You'll lose some quantitative data (e.g. heatmap) but you'll gain more reliable completion rates on iOS
4. Recruit Additional iOS Participants
If iOS testing is critical to your research, recruit 20-30% more iOS participants than needed to account for potential drop-offs.
What Maze Is Doing
Post-crash video recovery: We're actively working on improving our ability to recover video recordings even when crashes occur, so you don't lose valuable qualitative insights.
Collaboration with Figma: We maintain an ongoing partnership with Figma's team to explore long-term solutions and optimizations.
Escalation path: If you're experiencing persistent issues, contact Maze Support. We can forward your specific case to Figma's team for investigation, which helps prioritize fixes that benefit the entire ecosystem.
Need Help?
If you're unsure which approach is best for your study or need assistance optimizing your setup, reach out to Maze Support. We're here to help you design around this limitation while maintaining the quality of your research.