Error Codes

Error Codes

Errors can arise in most of the Gurobi library routines. In the C interface, library routines return an integer error code. In the C++, Java, .NET, and Python interfaces, Gurobi methods can throw an exception (a C++ exception, a Java exception, a .NET exception, or a Python exception)

Underlying all Gurobi error reporting is a set of error codes. These are integer values, but we recommend that you use one of the pre-defined error code constants to check the error status in your program. Each error code has a name, and each language requires a prefix on this name to obtain the appropriate constant. You would access error code OUT_OF_MEMORY in the following ways from the available Gurobi interfaces:

Language Error Code

Note that when an error occurs, it produces both an error code and an error message. The message can be obtained through GRBgeterrormessage in C, through GRBException::getMessage() in C++, through the inherited getMessage() method on the GRBException class in Java, through the inherited Message property on the GRBException class in .NET, or through the e.message attribute on the GurobiError object in Python.

Possible error codes are:

Error code Error number Description
OUT_OF_MEMORY 10001 Available memory was exhausted
NULL_ARGUMENT 10002 NULL input value provided for a required argument
INVALID_ARGUMENT 10003 An invalid value was provided for a routine argument
UNKNOWN_ATTRIBUTE 10004 Tried to query or set an unknown attribute
DATA_NOT_AVAILABLE 10005 Attempted to query or set an attribute that could not be accessed at that time
INDEX_OUT_OF_RANGE 10006 Tried to query or set an attribute, but one or more of the provided indices (e.g., constraint index, variable index) was outside the range of valid values
UNKNOWN_PARAMETER 10007 Tried to query or set an unknown parameter
VALUE_OUT_OF_RANGE 10008 Tried to set a parameter to a value that is outside the parameter's valid range
NO_LICENSE 10009 Failed to obtain a valid license
SIZE_LIMIT_EXCEEDED 10010 Attempted to solve a model that is larger than the limit for a demo license
CALLBACK 10011 Problem in callback
FILE_READ 10012 Failed to read the requested file
FILE_WRITE 10013 Failed to write the requested file
NUMERIC 10014 Numerical error during requested operation
IIS_NOT_INFEASIBLE 10015 Attempted to perform infeasibility analysis on a feasible model
NOT_FOR_MIP 10016 Requested operation not valid for a MIP model
OPTIMIZATION_IN_PROGRESS 10017 Tried to query or modify a model while optimization was in progress
DUPLICATES 10018 Constraint, variable, or SOS contained duplicated indices
NODEFILE 10019 Error in reading or writing a node file during MIP optimization
Q_NOT_PSD 10020 Q matrix in QP model is not positive semi-definite
QCP_EQUALITY_CONSTRAINT 10021 QCP equality constraint specified (only inequalities are supported)
NETWORK 10022 Problem communicating with the Gurobi Compute Server
JOB_REJECTED 10023 Gurobi Compute Server responded, but was unable to process the job (typically because the queuing time exceeded the user-specified timeout or because the queue has exceeded its maximum capacity)
NOT_SUPPORTED 10024 Indicates that a Gurobi feature is not supported under your usage environment (for example, some advanced features are not supported in a Compute Server environment)
EXCEED_2B_NONZEROS 10025 Indicates that the user has called a query routine on a model with more than 2 billion non-zero entries, and the result would exceed the maximum size that can be returned by that query routine. The solution is typically to move to the GRBX version of that query routine.
INVALID_PIECEWISE_OBJ 10026 Piecewise-linear objectives must have certain properties (as described in the documentation for the various setPWLObj methods). This error indicates that one of those properties was violated.
UPDATEMODE_CHANGE 10027 The UpdateMode parameter can not be modified once a model has been create.
CLOUD 10028 Problems launching a Gurobi Instant Cloud job.
MODEL_MODIFICATION 10029 Indicates that the user has modified the model in such a way that the model became invalid. For example, this happens when a general constraint exists in the model and the user deletes the resultant variable of this constraint. In such a case, the general constraint does not have any meaningful interpretation anymore. The solution is to also delete the general constraint when a resultant variable is deleted.
NOT_IN_MODEL 20001 Tried to use a constraint or variable that is not in the model, either because it was removed or because it has not yet been added
FAILED_TO_CREATE_MODEL 20002 Failed to create the requested model
INTERNAL 20003 Internal Gurobi error