Problém se mi podařilo vyřešit.
Problém nebyl s níže uvedeným kódem
await session.commitTransaction(); (success)
session.endSession(); (failure)
} catch (error) { (entered)
await session.abortTransaction(); (invoked)
ale bylo to u záznamů.pro každou smyčku.
records.forEach(async (el: any) => {...});
uvnitř foreach při vyvolání chyby není zachycena nejvzdálenějším blokem try catch, protože obsah uvnitř smyčky je v jiném funkčním kontextu než kód mimo smyčku.
Jednou jsem změnil smyčku z .forEach
do
for (const el of records) {}
funguje podle očekávání. Zveřejnění odpovědi v případě, že někdo bude v budoucnu čelit stejnému. Díky za podporu kluci :)