# Mismatch in the cost function in MOSEK with Convex.jl

I am using Convex.jl and MOSEK to solve a mixed integer second-order cone programming problem.
The cost function is encoded as
`minimize(-x + μ * sum(abs.(v)) - a * sum(γ))`
where `x` (real value), `v` (real vector), and `γ` (binary vector) are the problem variables, and `a` and `μ` are parameters. I noticed that for high values of `μ` there is a mismatch between the log of MOSEK and the cost function computed using the results of the variables. Specifically, MOSEK log reports
`Objective of best integer solution : -1.342072779625e+01`
`Best objective bound : -1.342072779625e+01 `
while if I try to compute the cost function using the results its value is -6.28. Additionally, a cost function having a value lower than -7.21 should be impossible due to the bounds on `x` and `γ`.
Is there any explanation for this?

PS: the original problem is quite complex and long. I am trying to find a MWE.

Some questions to help debug:

• Do you have the solution log? What is the status? Did Mosek terminate normally?
• What are the bounds on `x` and `γ`? Did you verify that the solution to `x` and `γ` are actually feasible in their bounds?
• What is a “large” `μ`?

• Yes, it terminates normally, the log is
``````An optimal solution satisfying the relative gap tolerance of 1.00e+00(%) has been located.
The relative gap is 0.00e+00(%).
An optimal solution satisfying the absolute gap tolerance of 0.00e+00 has been located.
The absolute gap is 0.00e+00.

Objective of best integer solution : -1.342072779625e+01
Best objective bound               : -1.342072779625e+01
Initial feasible solution objective: Undefined
Construct solution objective       : Not employed
User objective cut value           : Not employed
Number of cuts generated           : 0
Number of branches                 : 611
Number of relaxations solved       : 615
Number of interior point iterations: 18831
Number of simplex iterations       : 0
Time spend presolving the root     : 0.20
Time spend optimizing the root     : 0.30
Mixed integer optimizer terminated. Time: 66.23
``````
• `x` must be lower than log(500)=6.21, while the term `a * sum(γ)` is at maximum 1, since the parameter `a` is selected to be 1/length(γ). And yes, the solution is feasible, and the bounds and constraints are well respected.
• Higher than 10000. And it gets worse incresing the value.

the solution is feasible, and the bounds and constraints are well respected.

To clarify: you have checked the value of `x.value`, `v.value` and `γ.value`, and these are okay. But `problem.optval` gives the wrong answer?

Do you have a reproducible example? It’s hard to identify what is going on without one.

Exactly, `x.value`, `v.value`, and `γ.value` are okay, but `problem.optval` gives the wrong answer.

I’ll try to get a MWE and get back here