I want to modify two schema while adding data. For that I used ACID transaction of mongodb with nodejs as follow. But, when I run program it displays the error like
(node:171072) UnhandledPromiseRejectionWarning: MongoError: Given transaction number 3 does not match any in-progress transactions. The active transaction number is 2 at MessageStream.messageHandler (/home/user/Projects/project/node_modules/mongodb/lib/cmap/connection.js:272:20) at MessageStream.emit (events.js:375:28) at MessageStream.emit (domain.js:470:12) addData = async(request: Request, response: Response) => { const session = await stockSchema.startSession() try { const userData = request.body let data = {} const transaction = await session.withTransaction(async() => { try { userData.products.map(async(item: any) => { await inventorySchema.findOneAndUpdate({ _id: item.materialID }, { $inc: {qty: -item.qty }}, { session }); }); data = new stockSchema(userData); await data.save({ session }); } catch (error) { await session.abortTransaction() throw new Error("Could not create data. Try again."); } }); if (transaction) { session.endSession() return returnData(response, data, 'Data created successfully.'); } else { throw new Error("Could not create data. Try again."); } } catch (error: any) { session.endSession(); return Error(response, error.message, {}); } }