Minimization result success change after SLSQP Fortran to C rewrite

In SciPy v1.16.0 gives different numerical results and Singular matrix E in LSQ subproblem · Issue #2593 · scikit-hep/pyhf · GitHub we noticed that updating from SciPy v1.15.3 to v1.16.0 changed the minimization result success status from True to False with no other code changes where the SQSLP method is used by default.

If I search SciPy for “Singular matrix E in LSQ subproblem” it matches in scipy/optimize/_slsqp_py.py, and it mentions in the release notes that

The SLSQP Fortran 77 code was ported to C. When this method is used now the constraint multipliers are exposed to the user through the multiplier keyword of the returned OptimizeResult object.

I haven’t thought very deeply about this yet, but:

  • Is there any immediately obvious reason that minimization that converged in SciPy v1.15.3 would now not in v1.16.0?
  • Can someone point me to documentation on what “Singular matrix E in LSQ subproblem” actually means, practically?