Errors thrown by Elasticsearch are error objects, which can include a strack trace and information to help debug problems. An error object consists of the following:
{ type => $type, # eg Missing text => 'Error message', vars => {...}, # vars which may help to explain the error stack => [...], # a stack trace }
The $Elasticsearch::Error::DEBUG
variable can be set to 1
or 2
to increase the verbosity of errors.
The following error classes are defined:
Elasticsearch::Error::Param
A bad parameter has been passed to a method.
Elasticsearch::Error::Request
There was some generic error performing your request in Elasticsearch. This error is triggered by HTTP status codes 400
and 500
. This class has the following sub-classes:
Elasticsearch::Error::Missing
A resource that you requested was not found. These errors are triggered by the 404
HTTP status code.
Elastisearch::Error::Conflict
Your request could not be performed because of some conflict. For instance, if you try to delete a document with a particular version number, and the document has already changed, it will throw a Conflict
error. If it can, it will include the current_version
in the error vars. This error is triggered by the 409
HTTP status code.
Elasticsearch::Error::ContentLength
The request body was longer than the max_content_length.
Elasticsearch::Error::Timeout
The request timed out.
Elasticsearch::Error::Cxn
There was an error connecting to a node in the cluster. This error indicates node failure and will be retried on another node. This error has the following sub-class:
Elasticsearch::Error::Unavailable
The current node is unable to handle your request at the moment. Your request will be retried on another node. This error is triggered by the 503
HTTP status code.
Elasticsearch::Error::ClusterBlocked
The cluster was unable to process the request because it is currently blocking, eg there are not enough master nodes to form a cluster. This error is triggered by the 403
HTTP status code.
Elasticsearch::Error::Serializer
There was an error serializing a variable or deserializing a string.
Elasticsarch::Error::Internal
An internal error occurred - please report this as a bug in this module.