Skip to main content
Question

Flutter Web + RevenueCat checkout: scroll broken in overlay on Android Chrome

  • February 20, 2026
  • 1 reply
  • 48 views

Forum|alt.badge.img
We’re using purchases_flutter (9.12.0) on Flutter web with RevenueCat Billing (Stripe). The flow is:
  1. User is on our paywall screen (Flutter UI).
  2. User taps Subscribe/Purchase → we call Purchases.purchase(PurchaseParams.package(package)).
  3. RevenueCat opens the Stripe checkout in a fullscreen overlay (iframe from pay.rev.cat / Stripe).

Issue: On Android Chrome, the overlay shows and the scrollbar appears (content is taller than the viewport), but touch/scroll doesn’t work inside the checkout form. Scrolling works on iOS Safari and desktop Safari.

 

So the overlay knows the content doesn’t fit (scrollbar is visible), but scroll gestures don’t reach or don’t work inside the Stripe iframe on Android Chrome. We reverted our own CSS/JS tweaks (pointer-events, viewport, etc.) and the behavior is unchanged.

 

Environment: Flutter web, RevenueCat Web Billing + Stripe, Purchases.configure(webKey) and Purchases.purchase(PurchaseParams.package(package)). CSP allows frame-src for pay.rev.cat and Stripe.

 

Has anyone seen this on Flutter web + Android Chrome, or is there a recommended way to present checkout on web (e.g. redirect instead of overlay) to avoid iframe scroll issues?

 

This post has been closed for comments

1 reply

Tarek
RevenueCat Staff
Forum|alt.badge.img+3
  • RevenueCat Staff
  • February 24, 2026

Hello there!

I'm Tarek, from the support team, and I'll happily assist you.

 

I'm not sure if the issue you've mentioned is live on your website right, but I've tested it, and the checkout seems to scroll just fine.

 

For the record, a fix recently landed in one of our JS component specifically targeting this issue.

If you use purchases-js as a dependency too, you might want to upgrade it to at least version 1.26.2 to make sure you have the fixed version.

 

Also, do not hesitate to test with different Android devices and different configuration (for instance around extensions such as ad blockers) to rule out any third party interference.

Best regards,