El controlador nativo de MongoDB Node.js traga silenciosamente la excepción `bulkWrite`

El siguiente script tiene un error en la sintaxis de mongo bulkWrite op:$setOnInsert: { count:0 }, es innecesario y, por lo tanto, mongo lanza una excepción: "No se pueden actualizar 'contar' y 'contar' al mismo tiempo".

El problema es que el controlador node.js no parece captarlo. Este script registra "¡Éxito!" a la consola

(async () => {

  let db = await require('mongodb').MongoClient.connect('mongodb://localhost:27017/myNewDb');

  let mongoOps = [{
    updateOne: {
      filter: { foo: "bar" },
      update: {
        $setOnInsert: { count:0 },
        $inc: { count:1 },
      },
      upsert: true,
    }
  }];

  try {
    await db.collection("myNewCollection").bulkWrite(mongoOps);
    console.log("Success!");
  } catch(e) {
    console.log("Failed:");
    console.log(e);
  }

})();

Examinandodb.system.profile.find({}) condb.setProfileLevel(2) podemos ver la excepción:

{
    "op" : "update",
    "ns" : "myNewDb.myNewCollection",
    "query" : {
        "foo" : "bar"
    },
    "updateobj" : {
        "$setOnInsert" : {
            "count" : 0
        },
        "$inc" : {
            "count" : 1
        }
    },
    "keyUpdates" : 0,
    "writeConflicts" : 0,
    "numYield" : 0,
    "locks" : {
        "Global" : {
            "acquireCount" : {
                "r" : NumberLong(1),
                "w" : NumberLong(1)
            }
        },
        "Database" : {
            "acquireCount" : {
                "w" : NumberLong(1)
            }
        },
        "Collection" : {
            "acquireCount" : {
                "w" : NumberLong(1)
            }
        }
    },
    "exception" : "Cannot update 'count' and 'count' at the same time",
    "exceptionCode" : 16836,
    "millis" : 0,
    "execStats" : {},
    "ts" : ISODate("2017-10-12T01:57:03.008Z"),
    "client" : "127.0.0.1",
    "allUsers" : [],
    "user" : ""
}

¿Por qué el conductor se traga errores como este? Definitivamente parece un error, pero pensé en preguntar primero aquí solo para estar seguro.

Respuestas a la pregunta(1)

Su respuesta a la pregunta