When a model is infeasible, you can use Model.feasRelax() or Model.feasRelaxS() to create a feasibility relaxation of the model. This works as expected for optimization problems with a single objective function. However, feasibility relaxations may not work as expected on models with multiple objectives.
Constructing a feasibility relaxation adds slack variables to the constraints and bounds. Additionally, the objective function is modified to minimize either the \( L^0 \), \( L^1 \), or \( L^2 \) norm of the constraint violations. Unfortunately, in the case of multi-objective problems, the objective function is not properly modified.
This issue will be fixed in the next minor release of Gurobi (e.g. 9.1). Until then, a workaround for this issue is to delete the multiple objectives before calling Model.feasRelax(). This can be done by setting the NumObj model attribute to zero.