---
hide_title: false
hide_table_of_contents: false
pagination_next: null
pagination_prev: null
---
# Error.prototype.cause

The **`cause`** data property of an [`Error`](../../../globals/Error/Error.mdx) instance indicates the specific original cause of the error.

It is used when catching and re-throwing an error with a more-specific or useful error message in order to still have access to the original error.

## Value

The value that was passed to the [`Error`](../Error.mdx) constructor in the `options.cause` argument. It may not be present.

## Description

The value of `cause` can be of any type. You should not make assumptions that the error you caught has an `Error` as its `cause`, in the same way that you cannot be sure the variable bound in the `catch` statement is an `Error` either. The "Providing structured data as the error cause" example below shows a case where a non-error is deliberately provided as the cause.
