diff --git a/.changeset/sour-feet-sniff.md b/.changeset/sour-feet-sniff.md new file mode 100644 index 0000000000..52074e43a6 --- /dev/null +++ b/.changeset/sour-feet-sniff.md @@ -0,0 +1,6 @@ +--- +"medusa-payment-stripe": patch +"@medusajs/medusa": patch +--- + +fix(medusa-payment-stripe): Catch on idempotency key retrieve if not found diff --git a/packages/medusa-payment-stripe/src/api/utils/__fixtures__/container.ts b/packages/medusa-payment-stripe/src/api/utils/__fixtures__/container.ts index 9a995d81a5..4cab93dc1c 100644 --- a/packages/medusa-payment-stripe/src/api/utils/__fixtures__/container.ts +++ b/packages/medusa-payment-stripe/src/api/utils/__fixtures__/container.ts @@ -35,8 +35,8 @@ container.register( withTransaction: function () { return this }, - retrieve: jest.fn().mockReturnValue(undefined), - create: jest.fn().mockReturnValue({}), + retrieve: jest.fn().mockImplementation(async () => undefined), + create: jest.fn().mockImplementation(async () => ({})), }) ) diff --git a/packages/medusa-payment-stripe/src/api/utils/utils.ts b/packages/medusa-payment-stripe/src/api/utils/utils.ts index 7c040033af..d0340dfe4a 100644 --- a/packages/medusa-payment-stripe/src/api/utils/utils.ts +++ b/packages/medusa-payment-stripe/src/api/utils/utils.ts @@ -226,10 +226,12 @@ async function completeCartIfNecessary({ const idempotencyKeyServiceTx = idempotencyKeyService.withTransaction(transactionManager) - let idempotencyKey = await idempotencyKeyServiceTx.retrieve({ - request_path: "/stripe/hooks", - idempotency_key: eventId, - }) + let idempotencyKey = await idempotencyKeyServiceTx + .retrieve({ + request_path: "/stripe/hooks", + idempotency_key: eventId, + }) + .catch(() => undefined) if (!idempotencyKey) { idempotencyKey = await idempotencyKeyService