Browse Source

feat: log error for support to investigate, and return 200 to recurly to prevent retries (#26317)

GitOrigin-RevId: 6f71fd4451e950a7bdbe1140a86a78bf8a04b039
Jimmy Domagala-Tang 1 năm trước cách đây
mục cha
commit
a1591e8b0c

+ 8 - 0
services/web/app/src/Features/Subscription/SubscriptionController.js

@@ -36,6 +36,7 @@ const PermissionsManager = require('../Authorization/PermissionsManager')
 const {
   sanitizeSessionUserForFrontEnd,
 } = require('../../infrastructure/FrontEndUser')
+const { IndeterminateInvoiceError } = require('../Errors/Errors')
 
 /**
  * @import { SubscriptionChangeDescription } from '../../../../types/subscription/subscription-change-preview'
@@ -622,6 +623,13 @@ function recurlyCallback(req, res, next) {
           eventData.transaction.subscription_id,
           lastSubscription,
           function (err) {
+            if (err instanceof IndeterminateInvoiceError) {
+              logger.warn(
+                { recurlySubscriptionId: err.info.recurlySubscriptionId },
+                'could not determine invoice to fail for subscription'
+              )
+              return res.sendStatus(200)
+            }
             if (err) {
               return next(err)
             }

+ 1 - 1
services/web/app/src/Features/Subscription/SubscriptionHandler.js

@@ -384,7 +384,7 @@ async function revertPlanChange(
     throw new IndeterminateInvoiceError(
       'cant determine invoice to fail for plan revert',
       {
-        info: { recurlySubscriptionId },
+        recurlySubscriptionId,
       }
     )
   }

+ 1 - 1
services/web/app/src/Features/Subscription/SubscriptionUpdater.js

@@ -522,7 +522,7 @@ async function setRestorePoint(subscriptionId, planCode, addOns, consumed) {
   }
 
   if (consumed) {
-    update.$inc = { revertedDueToFailedPayment: 1 }
+    update.$inc = { timesRevertedDueToFailedPayment: 1 }
   }
 
   await Subscription.updateOne({ _id: subscriptionId }, update).exec()