Stripe invoice.payment_failed logged — access never revoked
- Tried
- Ship Cursor/Lovable Stripe subscription webhooks after checkout worked
- Broke
- invoice.payment_failed (and often subscription.deleted) only logged; users kept paid access forever while Stripe looked healthy
- Fix
- For every event: name table/row/column that must change; prove with Stripe CLI + DB dump after payment_failed