Stripe Elements only breaks on one Vercel production domain

Hi all,

We’re facing a bizarre issue with our app on Vercel: everything works perfectly on local, preview deploys, and other production domains — but on one specific production domain, our Stripe Elements payment flow breaks in a very specific way.

:white_check_mark: What works (local, preview deploys, and alternate production domains):

  • User completes an order form with:

    • Email address
    • Number of players
    • Optional voucher code
  • Stripe Elements processes payment (including Apple Pay)

  • After success:

    • Order details (players, voucher, correct amount, email) are saved to Supabase
    • Confirmation email is sent to the form email address
    • Order confirmation screen loads correctly

:cross_mark: What breaks (only on one production domain):

  • After Apple Pay payment:

    • Only the Stripe email (not the form email) is saved
    • Player count resets to default (2)
    • Paid amount resets to default (£30)
    • Voucher info is lost
    • Confirmation screen enters an infinite reload loop
    • Confirmation email is sent to Apple Pay email instead of the form input

:test_tube: What we’ve tried:

  • Same build, repo, and environment variables across all environments
  • Verified working behaviour via “Visit” links in Vercel previews
  • Cleared CDN and redeployed from scratch
  • Tested on multiple browsers and devices (including private sessions)
  • Logged data before and after Stripe payment — data is present before redirect

:magnifying_glass_tilted_left: Key discovery:

We have three production domains on Vercel (e.g. project.vercel.app / project-account.vercel.app / project-git-main-account.vercel.app), and this broken behaviour only occurs on one of them. All others (including local) behave correctly with the exact same build.

:brain: Suspected cause:

This feels like a session, cookie, or localStorage boundary issue. Possibly:

  • Stripe or Apple Pay returning differently scoped data based on domain
  • Session/localStorage not surviving the post-payment redirect on that domain
  • SameSite or CORS behaviour unique to one domain

:red_question_mark:Looking for help:

  • Has anyone experienced domain-specific differences like this?
  • Anything Vercel does differently under the hood between production URLs?
  • Are there known session/localStorage limitations that might only affect one domain?

Thanks in advance — this is proving really tricky to debug and any insight would be hugely appreciated.

-Aloo

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.