Account deletion
A person deletes their account: what goes, what stays and what you do.
account.delete() erases the signed-in person in full: sessions revoked,
their records and files deleted, their plan in your app ended. This is the GDPR
erasure path a person runs themselves, and it needs nothing from you in the dashboard.
It cannot be undone, so put a confirmation step in front of it.
currentUser() returns authenticated: false for signed-out,
suspended and erased people alike, on purpose. A moderated person's state never reaches
the client, and one signed-out screen covers all three.
What happens if…
| If… | What happens | What you do |
|---|---|---|
A person runs account.delete() | At once: their sessions end, and the records and files they own, their credits, access grants, AI calls, runs and plan are deleted, and the IP addresses on their Logs events are removed. Logs rows and support threads keep the event and lose their email address | Nothing |
| Someone else's record was addressed to them | The record stays with its owner; only the link to the deleted person is removed | Nothing |
| They had an active paid plan | Their plan and access end in your app at once, and Gemmein sets their subscription in your Stripe account to cancel at the end of the period it is paid for: never refunded, never charged again. One still owing (past due or unpaid) is cancelled at once, with no refund. Logs records it | Nothing |
| Gemmein can't cancel it in Stripe (Stripe isn't connected, the key lacks Subscriptions: Write, or Stripe refuses) | Their subscription in your Stripe account is not cancelled. Errors shows Cancel <plan> for a deleted customer in Stripe with the last 6 characters of the Stripe customer id and no email address, and an alert email says the same | Cancel the subscription in Stripe |
| Gemmein can't read the app's payments at that moment | 503 erase_unavailable: nothing is deleted and nothing changes in Stripe | Show the message and let them try again |
| Stripe charges them again after the deletion | The renewal grants nothing and creates no account. A Logs row, with no email address on it, says to cancel or refund it in Stripe | Cancel the subscription in Stripe and refund the charge |
| They paid you through Stripe | Their Stripe customer, invoices and receipts stay in your Stripe account. Gemmein deletes nothing there | If they ask, delete the customer in Stripe too |
| A payment they started before the deletion arrives later | It grants nothing and emails no one | Refund it in Stripe |
| The same email signs in again | They are a new customer. None of the old records, purchases or plan come back | Nothing |
| You delete them from the Customers page | The same deletion. In Live, it asks for a code from your email first | Nothing |
account.delete() is called while signed out | 401 authentication_required, and nothing is deleted | Sign the person in first |
Was this page helpful?
Thanks for telling us.
Thanks for telling us.
Last updated