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();
}