I have an integer optimisation problem that I want to solve with Mosek-Fusion. Since it might take too long, I want to impose a timeout of 10 seconds. The program stops after 10 seconds, but how can I access the best solution that Mosek found until this point? When the program terminates normally, I get the solution via x.level(). But when it timeouts, I get an error. For simplicity, my MWE has a timeout of 1 second. from mosek.fusion import * import mosek.fusion.pythonic import numpy as np import sys if __name__ == '__main__': M = Model() A = np.array(np.random.randint(-1,2, size = (128,256)), dtype = np.float64) x = M.variable("x", 256, Domain.binary()) b = np.array(np.random.randint(0,20, size = (128)), dtype = np.float64) c = np.random.random(size = 256) M.constraint(A @ x <= b) M.objective(ObjectiveSense.Maximize, x.T @ c) M.setSolverParam("optimizerMaxTime", 1) M.setLogHandler(sys.stdout) M.solve() print(x.level()) This yields the error SolutionError: Solution status is Feasible but Optimal is expected. Reason: Accessing integer solution whose problem status is PrimalFeasible. Sidenote: I want to iteratively add constraints to my problem, without rerunning it. As far as I know, changing to cvxpy therefore is not an option. How do I obtain the best feasible solution at the end of the timeout? Continue reading...