Exceptions and errors

In addition to the 40x and 50x headers, error responses come with the name of the exception generated internally by the API server. You can define corresponding exceptions in your language or library, and raise them by doing a switch on the returned exception name.

Example

HTTP/1.1 500 Server error
Content-Type: application/json

{
    "status": "error",
    "message": "Error message",
    "error_type": "GeneralException"
}
exception  
TokenException Preceded by a 403 header, this indicates the expiry or invalidation of an authenticated session. This can be caused by the user logging out, a natural expiry, or the user logging into another Kite instance. When you encounter this error, you should clear the user's session and re-initiate a login.
UserException Represents user account related errors
OrderException Represents order related errors such placement failures, a corrupt fetch etc
InputException Represents missing required fields, bad values for parameters etc.
NetworkException Represents a network error where the API was unable to communicate with the OMS (Order Management System)
DataException Represents an internal system error where the API was unable to understand the response from the OMS to inturn respond to a request
GeneralException Represents an unclassified error. This should only happen rarely

Common HTTP error codes

code  
400 Missing or bad request parameters or values
403 Session expired or invalidate. Must relogin
404 Request resource was not found
405 Request method (GET, POST etc.) is not allowed on the requested endpoint
410 The requested resource is gone permanently
429 Too many requests to the API (rate limiting)
500 Something unexpected went wrong
502 The backend OMS is down and the API is unable to communicate with it
503 Service unavailable; the API is down
504 Gateway timeout; the API is unreachable