Bug Report: Mobile Safari/Chrome iOS crashes when pinch-zooming merch product modal
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.1k
- Forks
- 907
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 430
Description
Report
When viewing a merch product on iOS, pinch-zooming the product image inside the product modal can cause the page to reload and eventually crash.
URL
https://posthog.com/merch?product=james-hawkins-ultra-action-figure
Steps to reproduce
- Open the URL above on an iPhone.
- Pinch to zoom as far as you can
while the product modal is open.
3. The browser reloads the page.
4. After the page reloads and reopens the product modal, pinch to zoom again.
Actual result
- Safari displays:
A problem repeatedly occurred on "https://posthog.com/merch?product=james-hawkins-ultra-action-figure" - Chrome on iOS displays:
Can't open this page
The behavior was reproducible across multiple attempts.
Technical info
- Device: iPhone 17 Pro
- Browsers: Safari and Chrome (iOS)
- Page:
/merchproduct modal opened via?product=james-hawkins-ultra-action-figure
While investigating, I noticed the product page is rendered within a fixed-position modal containing a scrollable content area and image carousel. This may be related to how iOS WebKit handles pinch-zoom and viewport changes inside nested scroll containers, though I have not confirmed the root cause.
The product itself does not appear unusually large. The primary image is approximately 1250x1248 and ~2.5 MB, while other products contain more and larger images without obviously explaining the crash.
Expected outcome, or solution
Pinch-zooming a product image should either:
- Work normally without reloading or crashing the page, or
- Be gracefully constrained if zoom gestures are not supported within the modal experience.
Potential areas to investigate:
- Interaction between the modal, scroll container, and iOS pinch-zoom behavior
- Overscroll containment and scroll chaining on mobile Safari
- Fixed-position modal sizing (
100vw/ transformed layouts) on iOS - Radix Dialog and ScrollArea behavior during visual viewport changes
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the /merch entry point with the product query parameter on an iPhone, reproduce the pinch-zoom failure, and inspect the fixed-position modal, scrollable content area, image carousel, and the mentioned Radix Dialog and ScrollArea behavior. Compare Safari and Chrome on iOS while checking viewport changes, overscroll containment, and scroll chaining; done means pinch-zooming no longer reloads or crashes the page, or is gracefully constrained.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100