`solve(::OptimizationProblem)`: ub argument not quite respected

I have a fairly benign Optimization.OptimizationProblem (over an MTK problem). Passing lb, ub clearly works, but I encountered a case today where the output was

retcode: Success
u: 3×2 Matrix{Float64}:
 10.0    15.0
 18.025  14.0
 13.0    13.0

In spite of having an ub of fill(17, 3, 2). I.e. the upper bound isn’t respected and it still yields “success”. Is that expected? I’m using OptimizationOptimJL.NelderMead.

That’s not expected, but without reproducible example it’s hard to diagnose. It could also be an issue at the solver level in which case trying another one on the same problem might help in understanding it better.

2 Likes