Hi Esmaeel,
I am sorry, but I cannot debug your code. From your first email it looked like you are just using the where=GRB_CS_MIPSOL callback for reporting things. In this case you could send a lp or mps file and I could try to reproduce it, but your setting is much more complicated.
Nevertheless, I will try to raise some questions and make some suggestions. Maybe someone else from the community has some other helpful ideas.
Just to make sure I understand everything correctly: Your code using lazy constraints and Gurobi does not produce a feasible solution, because the callback isn’t called sufficiently often?
> I know that When it adds new cuts at the very last Callback call, it should find new incumbent
What do you mean by "should find”? Did it found a new incumbent or not? If no new incumbent is found, your callback will not be called.
Are you sure the lazy constraints added in the end, definitely cut off the last incumbent found? You should double check that.
-- Sonja