Why Mosek can not resolve new model when the added new constraints include SOCP constraints?

Here is a mini-case of my mathematical model.
First, solve the initial model, and check if the solution meets the condition. If it does not, the new constraints will be added, and solve the new model.
But there are some problems in this process:

  1. Use Mosek as solver, when only add linear constraints (Con1), the new model can be solved, and the final optimal value is 0.5;
  2. Use Mosek as solver, when the adding constraints include SOCP constraints (Con2), Mosek won’t resolve the new model, it will just keep the solution of initial model (the optimal value of initial model is 1).
  3. Use other solvers, e.g. Gurobi, when the adding constraints include SOCP constraints, the new model can be solved, and the final optimal value is about 0.25.

In conclusion, Mosek can not resolve the new model, when the added new constraints include SOCP constraints.

using JuMP, MosekTools, Gurobi

model = Model(Gurobi.Optimizer)
#model = Model(Mosek.Optimizer)

@variable(model, x)
@variable(model, y)
@objective(model, Max, x)
@constraint(model, x <= 1)
@constraint(model, y <= 1)
optimize!(model)
println("objective value:", objective_value(model))

#check if we need to add new constraints
x_val = value.(x)
if x_val >=0.5
    @constraint(model, x <= 0.5) #Con1
    @constraint(model, [y; 4x] in SecondOrderCone()) #Con2
end
optimize!(model) 
println("objective value:", objective_value(model))

Could someone give me some ideas on how this problem comes? And how to solve the problem?
Thanks!

P.S. the problem has also been posted on GitHub
https://github.com/jump-dev/MosekTools.jl/issues/70#issue-941248863

Hi there. I finally figure out how the problem comes. It seems that it is mainly due to the usage feature of Mosek.

When we use Mosek as solver, if we want to add different type of constraints, and solve the model iteratively. We should declare the type of constraints we would like to add in the initial model. Only in this way, will the Mosek recognize the different type of constraints you would like to add.

For this mini-case, I need to add a redundant variable y in the initial model, to declare that SOCP constraints will be added in the following process.

@variable(model, y)
@constraint(model, [y; 0] in SecondOrderCone())