119 x 32 1 Hidden Terminal give me a title: MongoServerError during import: "Given transaction number does not match any in-progress transactions"
-
Hello,
I'm running into a MongoDB transaction error when using the import API and I wanted to report it in case it's a known issue or something worth looking into.Environment
jsreport: 4.12.0
@jsreport/jsreport-core: 4.9.0
@jsreport/jsreport-import-export: 4.1.0
@jsreport/jsreport-mongodb-store: 4.0.0
mongodb driver: 6.6.2
MongoDB: Replica Set (Azure Atlas)
Store provider: mongodb
What happens
When calling POST /api/import to import a .jsrexport file, the import fails with:MongoServerError: Given transaction number 1 does not match any in-progress transactions. The active transaction number is -1The error is logged as:
warn: Unable to insert an entity (folders) "/OUR_FOLDER" during the import: MongoServerError: Given transaction number 1 does not match any in-progress transactions. The active transaction number is -1How to reproduce
- Configure jsreport with store.provider: "mongodb" on a replica set
- Delete several top-level folders containing many child entities (templates, scripts, assets) via the OData API
- Wait ~few seconds
- Call POST /api/import with a zip file that re-creates those same folders and entities
The import fails with the transaction error above
What I found
The error originates from the transaction block in @jsreport/jsreport-import-export/lib/import/index.js (around lines 294-310), where beginTransaction is called and then entity records are persisted sequentially inside the transaction.It seems like MongoDB is rejecting the write operations within the transaction due to a conflict with the recently completed delete operations on the same collections. The transaction number -1 indicates the server considers no transaction to be active, even though the client session believes one is in progress.
I also noticed that, in our case, the import appeared to succeed from the caller's perspective (our code was not checking the HTTP response status — that's on us and we've fixed it). But I wanted to flag the underlying transaction issue since it could affect other users as well.
-
Thank you for the topic. I've tried to replicate the issue, but I can't reproduce it so far.
Some questions to help me isolate the problem...
Do you have authentication enabled?
Do you reproduce the same with the local mongo single node replica?
Could you upload somewhere an export with "many child entities" so we test on the same?