I am testing Stripe with my Ghost site. I created an account on my Ghost site and selected a 5/month subscription. I went through the process of paying through Stripe. It was successful. My Stripe dashboard shows the transaction, as does my bank statement.
However, upon returning to the site, the user is shown as a free user.
Additionally, on the members section of my Ghost dashboard, the user I signed up is also shown as a free user. So everything on Ghost’s end shows this account as a free user, even though Stripe shows they paid for the membership.
Obviously I can’t have this happening on the hard launch of the site. What can be done to rectify this?
The Support staff for FastComet, where my Ghost site is hosted, attempted to restart my Ghost instance, but received this error:
[passage1@tx2 passages-of-play]$ ghost restart --no-setup-linux-user
✖ Restarting Ghost
A GhostError occurred.
Message: Ghost was able to start, but errored during boot with: Cannot read properties of undefined (reading 'members')
Thus, he had to restore a backup version of the site as Ghost would not restart.
Does anyone have any idea how to solve this conundrum?
I can confirm I had multiple paid subscribers that did not sync with stripe and was marked as free, using version 5.103
. I’ve updated to 5.104
and it seems to be working, but I am looking at this constantly
Just to say, I had this happen several months ago too. Fingers crossed it’s fixed with the latest version…
Some context that might (or might not) be helpful: When someone upgrades in Stripe, it fires a ‘webhook’ to Ghost.
Stripe will retry the webhook if it doesn’t go through at first, but if for whatever reason the webhook isn’t received, Ghost will not know about the subscription.
If you have an error in your proxy setup, it’s possible that webhooks are undeliverable. I’d expect that to impact all users subscriptions, not isolated cases.
So… it would be useful to look at the webhooks section of Stripe, to see if you can see any record of failing webhooks that correspond to incorrect status in Ghost.