Status getWriteConcernStatusFromCommandResult(const BSONObj& obj) { BSONElement wcErrorElem; Status status = bsonExtractTypedField(obj, kCmdResponseWriteConcernField, Object, &wcErrorElem); if (!status.isOK()) { if (status == ErrorCodes::NoSuchKey) { return Status::OK(); } else { return status; } } BSONObj wcErrObj(wcErrorElem.Obj()); WriteConcernErrorDetail wcError; std::string wcErrorParseMsg; if (!wcError.parseBSON(wcErrObj, &wcErrorParseMsg)) { return Status(ErrorCodes::UnsupportedFormat, str::stream() << "Failed to parse write concern section due to " << wcErrorParseMsg); } std::string wcErrorInvalidMsg; if (!wcError.isValid(&wcErrorInvalidMsg)) { return Status(ErrorCodes::UnsupportedFormat, str::stream() << "Failed to parse write concern section due to " << wcErrorInvalidMsg); } return wcError.toStatus(); }