diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java index 9dc8a1c68eae2123215802711e9700651d086e8b..3671fffade59c1d08f1f02b6acad39bb499d5c41 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java @@ -157,7 +157,7 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { Log.w(TAG, "Subscription is not yet active. Status: " + subscription.getStatus(), true); throw new RetryableException(); } else { - Log.i(TAG, "Recording end of period from active subscription.", true); + Log.i(TAG, "Recording end of period from active subscription: " + subscription.getStatus(), true); SignalStore.donationsValues().setLastEndOfPeriod(subscription.getEndOfCurrentPeriod()); MultiDeviceSubscriptionSyncRequestJob.enqueue(); } @@ -240,9 +240,8 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { DonationError.routeDonationError(context, DonationError.genericBadgeRedemptionFailure(getErrorSource())); throw new Exception(response.getApplicationError().get()); case 402: - Log.w(TAG, "Subscription payment failure in credential response.", response.getApplicationError().get(), true); - onPaymentFailure(null, null, 0L); - throw new Exception(response.getApplicationError().get()); + Log.w(TAG, "Payment looks like a failure but may be retried.", response.getApplicationError().get(), true); + throw new RetryableException(); case 403: Log.w(TAG, "SubscriberId password mismatch or account auth was present.", response.getApplicationError().get(), true); DonationError.routeDonationError(context, DonationError.genericBadgeRedemptionFailure(getErrorSource()));