---
name: "Search::Elasticsearch::Error"
section: "3pm"
platform: "linux"
package: "libsearch-elasticsearch-perl"
version: "8.12-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Search::Elasticsearch::Error"
---

# Search::Elasticsearch::Error(3pm)

Errors thrown by Search::Elasticsearch

## NAME

Search::Elasticsearch::Error - Errors thrown by Search::Elasticsearch

## VERSION

version 8.12

## DESCRIPTION

Errors thrown by Search::Elasticsearch are error objects, which can include a stack 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 `$Search::Elasticsearch::Error::DEBUG` variable can be set to `1` or `2` to increase the verbosity of errors.

Error objects stringify to a human readable error message when used in text context (for example: `"print 'Oh no! '.$error"`).  They also support the `"TO_JSON"` method to support conversion to JSON when "convert\_blessed" in JSON is enabled.

## ERROR CLASSES

The following error classes are defined:

- •

  `"Search::Elasticsearch::Error::Param"`

  A bad parameter has been passed to a method.

- •

  `"Search::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:

  - •

    `"Search::Elasticsearch::Error::Unauthorized"`

    Invalid (or no) username/password provided as `"userinfo"` for a password protected service. These errors are triggered by the `401` HTTP status code.

  - •

    `"Search::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.

  - •

    `"Search::Elasticsearch::Error::ContentLength"`

    The request body was longer than the max\_content\_length.

  - •

    `"Search::Elasticsearch::Error::RequestTimeout"`

    The request took longer than the specified `"timeout"`.  Currently only applies to the cluster\_health request.

- •

  `"Search::Elasticsearch::Error::Timeout"`

  The request timed out.

- •

  `"Search::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-classes:

  - •

    `"Search::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.

  - •

    `"Search::Elasticsearch::Error::BadGateway"`

    A proxy between the client and Elasticsearch is unable to connect to Elasticsearch. This error is triggered by the `502` HTTP status code.

  - •

    `"Search::Elasticsearch::Error::GatewayTimeout"`

    A proxy between the client and Elasticsearch is unable to connect to Elasticsearch within its own timeout. This error is triggered by the `504` HTTP status code.

  - •

    `"Search::Elasticsearch::Error::SSL"`

    There was a problem validating the SSL certificate.  Not all backends support this error type.

- •

  `"Search::Elasticsearch::Error::Forbidden"`

  Either the cluster was unable to process the request because it is currently blocking, eg there are not enough master nodes to form a cluster, or because the authenticated user is trying to perform an unauthorized action. This error is triggered by the `403` HTTP status code.

- •

  `"Search::Elasticsearch::Error::Illegal"`

  You have attempted to perform an illegal operation. For instance, you attempted to use a Scroll helper in a different process after forking.

- •

  `"Search::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.

## AUTHOR

Enrico Zimuel \<enrico.zimuel@elastic.co\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2024 by Elasticsearch BV.

This is free software, licensed under:

```
  The Apache License, Version 2.0, January 2004
```
