From 3b4d445ca8007cc84366ba3a0515210086da1c6b Mon Sep 17 00:00:00 2001 From: Ravi Khadiwala Date: Wed, 28 Aug 2024 13:56:49 -0500 Subject: [PATCH] Don't try to update a cancelled stripe subscription --- .../textsecuregcm/subscriptions/StripeManager.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java index 0bafda734..42c10e648 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java @@ -316,6 +316,12 @@ public class StripeManager implements SubscriptionPaymentProcessor { final Subscription subscription = getSubscription(subscriptionObj); + if (getSubscriptionStatus(subscription.getStatus()) == SubscriptionStatus.CANCELED) { + // If the existing subscription is cancelled, just create a new subscription rather than trying to update a + // cancelled subscription (which stripe forbids) + return createSubscription(subscription.getCustomer(), priceId, level, subscription.getCreated()); + } + return CompletableFuture.supplyAsync(() -> { List items = new ArrayList<>(); try {