Status values and errors

Status values

These are the exit statuses, their respective constants and values returned by the solver as defined in osqp_api_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