Parece que seu endpoint de webhook pode estar configurado incorretamente. Quando o período da assinatura termina, o Stripe envia um webhook que o plugin usa para remover a associação ao grupo e remover o usuário como cliente existente desse produto (o que permite que o usuário compre novamente).
Você precisará garantir que isso esteja configurado conforme o OP aqui: Discourse Subscriptions
Uma maneira de confirmar isso do seu servidor:
./launcher enter app
rails c
u = User.find_by_username(<username>)
c = DiscourseSubscriptions::Customer.where(user_id: u.id)
subscription = DiscourseSubscriptions::Subscription.where(customer_id: c.customer_id)
Lembre-se de substituir <username> pelo nome de usuário real do usuário.
Se subscription retornar [], há outro problema em andamento. Mas se retornar um valor, isso provavelmente confirma o webhook ausente.
Para excluir a entrada DiscourseSubscriptions::Subscription para que o usuário possa comprar o produto novamente:
Certifique-se de que subscription tenha apenas um valor executando subscription.count. Se o valor retornado for maior que 1, você precisará investigar um pouco mais para garantir que está excluindo a instância de assinatura correta. Se você excluir a errada, os dados de suas assinaturas ficarão em um estado inconsistente e provavelmente gerarão comportamentos estranhos.
Depois de confirmar que há apenas uma assinatura, você pode executar:
subscription.destroy_all
Lembre-se de que subscription é o valor retornado do conjunto inicial de consultas que executamos no console do Rails.
Espero que isso ajude!