Failed to transform received changeset: Schema mismatch: Property 'X' in class 'Y' is nullable on one side and not on the other

I get below message for ‘rate’. in both Booking class and schema, it is not a ‘required’ item. but i still get this error. pls help.

why is it so difficult for mongodb to tell in which side it is nullable?

Failed to transform received changeset: Schema mismatch: Property ‘rate’ in class ‘Booking’ is nullable on one side and not on the other.

below is my Booking class variables.
@PrimaryKey
private ObjectId _id = new ObjectId();
private String name = “Task”;
private String mobile = “”;
private String templocktime;

@Required
private String user_id = "My Project";
@Required
private String date = "30051986";
@Required
private String starttime = "0000";
@Required
private String duration = "60";
@Required
private String status = BookingStatus.Available.name();
private long bookingTime;
private int rate;

below is my schema.
{
“title”: “Booking”,
“bsonType”: “object”,
“properties”: {
“_id”: {
“bsonType”: “objectId”
},
“user_id”: {
“bsonType”: “string”
},
“date”: {
“bsonType”: “string”
},
“starttime”: {
“bsonType”: “string”
},
“duration”: {
“bsonType”: “string”
},
“status”: {
“bsonType”: “string”
},
“name”: {
“bsonType”: “string”
},
“mobile”: {
“bsonType”: “string”
},
“templocktime”: {
“bsonType”: “string”
},
“bookingTime”: {
“bsonType”: “long”
},
“rate”: {
“bsonType”: “int”
}
},
“required”: [
“user_id”,
“date”,
“starttime”,
“duration”,
“status”
]
}