Skip to content

Commit 6ea3484

Browse files
Merge pull request #3123 from appwrite/fix/premium-geo-db-invoice-race
fix: handle webhook-race on Premium Geo DB addon enable
2 parents 241dde8 + 441717a commit 6ea3484

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

src/routes/(console)/project-[region]-[project]/settings/premiumGeoDBEnableModal.svelte

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,23 @@
6060
return;
6161
}
6262
63-
await sdk.forConsoleIn(page.params.region).projects.confirmAddonPayment({
64-
projectId: page.params.project,
65-
addonId: paymentAuth.addonId
66-
});
63+
try {
64+
await sdk.forConsoleIn(page.params.region).projects.confirmAddonPayment({
65+
projectId: page.params.project,
66+
addonId: paymentAuth.addonId
67+
});
68+
} catch (e) {
69+
// A 404 here means the Stripe webhook already consumed the invoice
70+
// and activated the addon (race) — the addon is enabled, so sync
71+
// state and assume success rather than surfacing the error.
72+
if (
73+
e?.type !== 'billing_invoice_not_found' &&
74+
e?.type !== 'addon_not_found' &&
75+
e?.code !== 404
76+
) {
77+
throw e;
78+
}
79+
}
6780
6881
await Promise.all([
6982
invalidate(Dependencies.ADDONS),

0 commit comments

Comments
 (0)