Upgrade from Plus to Pro fails before payment form loads — no Stripe/card entry UI, /backend-api/subscriptions/update returns 400

Hello everyone,

Been having issue for weeks, done everything bot support asks me to do but nothig works and i don’t really get the support asked, could anybody help i’m trying to pay 200 a month but i cant

Thank you for your help here is all details

I’m reporting what looks like a broken upgrade checkout flow from ChatGPT Plus to ChatGPT Pro.

Current state:

  • I already have an active normal ChatGPT subscription paid successfully with my saved card

  • I am trying to upgrade to the $200 Pro plan

  • The card itself is not the issue: it already works for my current subscription and works elsewhere with SCA, including international purchases and similar amounts

What happens:

  • I go to pricing

  • I click upgrade to Pro

  • I only see 2 UI steps:

    1. pricing / plan selection page

    2. a small confirmation modal for the plan change with “Pay now”

  • I never get a real payment page

  • I never see Stripe checkout

  • I never see card fields

  • I never see Link

  • I never get any 3DS / SCA prompt

  • then the flow errors out

Important point:
This does not look like a normal “card declined” case because the payment form itself never renders. The upgrade flow seems to fail before any proper payment collection/authentication step is shown.

Environment / things already tested:

  • Safari

  • Chrome incognito

  • Safari without extensions

  • 4G / 5G

  • different phone

  • no VPN

  • no iCloud Private Relay

  • multiple French cards

  • same result every time

Console / network signals I saw:

  • /backend-api/subscriptions/update returns HTTP 400

  • /backend-api/accounts/.../users?... returns HTTP 401

  • multiple preload warnings

  • Radix DialogContent requires a DialogTitle accessibility warning

Most relevant signal seems to be:

  • the upgrade request hits /backend-api/subscriptions/update

  • that call returns 400

  • after that, no proper payment UI appears

My suspicion:
The Plus → Pro upgrade path is failing in app/backend state before the checkout/payment provider step is initialized. It may be trying to reuse an existing payment method or billing state incorrectly instead of opening a fresh checkout/session.

Expected behavior:

  • either open a full Stripe payment page

  • or show card fields / payment method selection / Link

  • or at minimum show a clear billing error explaining what is invalid

Actual behavior:

  • no real payment page

  • no card entry

  • no authentication step

  • silent/broken upgrade flow ending in 400

Hi @sei6

Welcome to the dev community. This definitely doesn’t look like a normal card failure. The payment step never even loads, which usually means the upgrade flow is failing earlier on the backend side.

Really appreciate you listing everything you’ve already tested, that helps rule out most of the usual causes.

One workaround that sometimes helps in this specific Plus - Pro transition is resetting the subscription state:

  • Cancel the current Plus plan
  • Wait for it to fully expire
  • Then try subscribing directly to Pro instead of upgrading

Not ideal, but it can bypass cases where the upgrade path gets stuck.

If you’re still seeing the same behavior after that, it’s worth opening a support ticket so the team can take a closer look at the account and billing state. When you do, include what you already shared here (especially the /subscriptions/update 400 detail), since that’s actually very useful signal.

~Smith