Status values and errors¶
Status values¶
These are the exit statuses, their respective constants and values returned by the solver as defined in constants.h. The inaccurate statuses define when the optimality, primal infeasibility or dual infeasibility conditions are satisfied with tolerances 10 times larger than the ones set.
Status |
Constant |
Value |
---|---|---|
solved |
OSQP_SOLVED |
1 |
solved inaccurate |
OSQP_SOLVED_INACCURATE |
2 |
primal infeasible |
OSQP_PRIMAL_INFEASIBLE |
3 |
primal infeasible inaccurate |
OSQP_PRIMAL_INFEASIBLE_INACCURATE |
4 |
dual infeasible |
OSQP_DUAL_INFEASIBLE |
5 |
dual infeasible inaccurate |
OSQP_DUAL_INFEASIBLE_INACCURATE |
6 |
maximum iterations reached |
OSQP_MAX_ITER_REACHED |
7 |
run time limit reached |
OSQP_TIME_LIMIT_REACHED |
8 |
problem non convex |
OSQP_NON_CVX |
9 |
interrupted by user |
OSQP_SIGINT |
10 |
unsolved |
OSQP_UNSOLVED |
11 |
Note
We recommend the user to check the convexity of their problem before passing it to OSQP! If the user passes a non-convex problem we do not assure the solver will be able to detect it.
OSQP will try to detect non-convex problems by checking if the residuals
diverge or if there are any issues in the initial factorization (if a direct
method is used). It will detect non-convex problems when one or more of the
eigenvalues of P
are “clearly” negative, i.e., when P + sigma
* I
is not positive semidefinite. However, it might fail to detect
non-convexity when P
has slightly negative eigenvalues, i.e., when
P + sigma * I
is positive semidefinite and P
is not.
Solver Errors¶
OSQP can return errors during the setup and solve steps. Here is a table of the meaning and their constant values.
Errors |
Constant |
Value |
---|---|---|
No error |
OSQP_NO_ERROR |
0 |
Data validation failed |
OSQP_DATA_VALIDATION_ERROR |
1 |
Settings validation failed |
OSQP_SETTINGS_VALIDATION_ERROR |
2 |
Linear system solver initialization failed |
OSQP_LINSYS_SOLVER_INIT_ERROR |
3 |
Non convex problem detected |
OSQP_NONCVX_ERROR |
4 |
Memory allocation error |
OSQP_MEM_ALLOC_ERROR |
5 |
Workspace not initialized |
OSQP_WORKSPACE_NOT_INIT |
6 |
Error loading algebra library |
OSQP_ALGEBRA_LOAD_ERROR |
7 |
Error opening file for writing |
OSQP_FOPEN_ERROR |
8 |
Error validating given code generation defines |
OSQP_CODEGEN_DEFINES_ERROR |
9 |
Solver data not initialized |
OSQP_DATA_NOT_INITIALIZED |
10 |
Function not implemented in current algebra |
OSQP_FUNC_NOT_IMPLEMENTED |
11 |