The error says it: test and live are two completely separate worlds. Your new live product got a new price ID. The old price_1Q8xYzL... is hardcoded somewhere (Lovable tends to put it straight in the component or in a const PRICES = {...} file).
Fix:
- Dashboard, toggle to live, open the product, copy the live price ID.
- Put price IDs in env vars (
STRIPE_PRICE_PRO_MONTHLY) instead of code, so test and live each get their own. - While you're at it, check the other Stripe things that are per-mode: webhook endpoint + its signing secret, customer portal settings, tax settings, coupons.
Tip for next time: products have a "Copy to live mode" action, which saves recreating them, but you still get new IDs.
src/lib/plans.ts. Live now, first real payment came in 20 min later. Thanks a lot priya_ships · edited
price_1- bet it's hardcoded somewhere. hannah_reyes · edited