Ich konnte das Problem lösen.
Das Problem lag nicht am folgenden Code
await session.commitTransaction(); (success)
session.endSession(); (failure)
} catch (error) { (entered)
await session.abortTransaction(); (invoked)
aber es war mit der record.forEach-Schleife.
records.forEach(async (el: any) => {...});
Wenn innerhalb von foreach ein Fehler ausgegeben wird, wird dieser nicht vom äußersten try-catch-Block abgefangen, da sich der Inhalt innerhalb der Schleife in einem anderen funktionalen Kontext befindet als der Code außerhalb der Schleife.
Einmal habe ich die Schleife von .forEach
geändert zu
for (const el of records) {}
Es funktioniert wie erwartet. Posten Sie die Antwort, falls jemand in Zukunft mit demselben konfrontiert wird. Danke für die Unterstützung Jungs :)