Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# 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 predefined 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
--- | ---
C | `GRB_ERROR_OUT_OF_MEMORY`
C++ | `GRB_ERROR_OUT_OF_MEMORY`
Java | `GRB.Error.OUT_OF_MEMORY`
.NET | `GRB.Error.OUT_OF_MEMORY`
Python | `GRB.Error.OUT_OF_MEMORY`

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.

In MATLAB and R, the error codes and corresponding messages are printed on the screen whenever an error occurs.

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 if the NonConvex parameter is set to 0 or 1)
`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, e.g. `GRBXgetvars`.
`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 created.
`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.
`CSWORKER` | 10030 | When you are using a client-server feature, this error indicates that there was an application problem.
`TUNE_MODEL_TYPES` | 10031 | Indicates that tuning was invoked on a set of models, but the models were of different types (e.g., one an LP, another a MIP).
`SECURITY` | 10032 | Indicates that an authentication step failed or that an operation was attempted for which the current credentials do not warrant permission.
`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

Help and Feedback

Press `/` or click to search this documentation | Gurobi website | Gurobi community forum
Go to other Gurobi documentation | Gurobi download | Contact support