Skip to main content
Skip to main content
You're viewing the documentation for v1, which isn't the latest Medusa version.Latest documentation

Database Transaction Not Rolling Back When Promise.all is Used

Due to how Promise.all works, when you run multiple database transactions within it, these transactions may not be rolled back when an error occurs.

To mitigate this issue, use the promiseAll function which can be imported from @medusajs/utils. For example:

import { promiseAll } from "@medusajs/utils"
import { TransactionBaseService } from "@medusajs/medusa"

class MyService extends TransactionBaseService {
async performTransactions() {
return await promiseAll([
// your transactions....
])
}
}
Was this section helpful?