Jag kunde lösa problemet.
Problemet var inte med koden nedan
await session.commitTransaction(); (success)
session.endSession(); (failure)
} catch (error) { (entered)
await session.abortTransaction(); (invoked)
men det var med records.forEach loop.
records.forEach(async (el: any) => {...});
inuti foreachen när ett fel skickas fångas den inte av det yttersta try catch-blocket eftersom innehållet i loopen är i ett annat funktionellt sammanhang än koden utanför loopen.
En gång ändrade jag loopen från .forEach
till
for (const el of records) {}
det fungerar som förväntat. Lägger ut svaret ifall någon möter samma sak i framtiden. Tack för stödet killar :)