when calling a command, driver checks for error using the "err" field.
But that field is not always specified, sometimes it's "errmsg".
Apparently there is a known distinction between the 2.
For example, when using an unknown "w" policy:
{ "serverUsed" : "localhost:27017" , "n" : 0 , "lastOp" :
, "connectionId" : 82 , "errmsg" : "exception: unrecognized getLastError mode: blah" , "code" : 14830 , "ok" : 0.0} in 3ms
looks like driver should instead rely on ok=0 and then look for either err or errmsg.