Okay, this is indeed a bug: Starting value in unsupported bridge errors instead of skipping · Issue #2327 · jump-dev/MathOptInterface.jl · GitHub.
Here’s what is happening:
- If a solver does not support
HermitianPSDConeexplicitly, then JuMP will reformulate it into an equivalentPositiveSemidefiniteConeTriangleconstraint through a bridge. - When you set the starting value of
E1andE2, the bridge needs to convert those starting values into equivalent starting values for the reformulated variables inside the solver - Some bridges (such as the hermitian to PSD bridge) do not yet have support for mapping starting values (Add support for starting values in bridges · Issue #684 · jump-dev/MathOptInterface.jl · GitHub)
- Since starting values are an optional hint that can improve performance but not correctness, JuMP should silently ignore them if they are not supported by the solver.
- COSMO and SCS supports starting values, but the Hermitan to PSD bridge does not, so JuMP should skip copying the starting values.
- JuMP correctly skips the values for SCS (even though it doesn’t warn the user, this is a choice we made), but it errors for COSMO.
- I don’t know why it errors, which is the bug.
So the conclusion is: don’t use starting values for now if you are using HermitianPSDCone ![]()