# CriticalError<!-- -->

Errors of `CriticalError` type will shut down the whole crawler. Error handlers catching CriticalError should avoid logging it, as it will be logged by Node.js itself at the end

### Hierarchy

* [NonRetryableError](https://crawlee.dev/js/api/core/class/NonRetryableError.md)
  * *CriticalError*
    * [BrowserLaunchError](https://crawlee.dev/js/api/browser-pool/class/BrowserLaunchError.md)

## Index[**](#Index)

### Constructors

* [**constructor](#constructor)

### Properties

* [**cause](#cause)
* [**message](#message)
* [**name](#name)
* [**stack](#stack)
* [**stackTraceLimit](#stackTraceLimit)

### Methods

* [**captureStackTrace](#captureStackTrace)
* [**isError](#isError)
* [**prepareStackTrace](#prepareStackTrace)

## Constructors<!-- -->[**](#Constructors)

### [**](#constructor)externalconstructor

* ****new CriticalError**(message): [CriticalError](https://crawlee.dev/js/api/core/class/CriticalError.md)
* ****new CriticalError**(message, options): [CriticalError](https://crawlee.dev/js/api/core/class/CriticalError.md)

- Inherited from NonRetryableError.constructor

  #### Parameters

  * ##### externaloptionalmessage: string

  #### Returns [CriticalError](https://crawlee.dev/js/api/core/class/CriticalError.md)

## Properties<!-- -->[**](#Properties)

### [**](#cause)externaloptionalinheritedcause

**cause?

<!-- -->

: unknown

Inherited from NonRetryableError.cause

### [**](#message)externalinheritedmessage

**message: string

Inherited from NonRetryableError.message

### [**](#name)externalinheritedname

**name: string

Inherited from NonRetryableError.name

### [**](#stack)externaloptionalinheritedstack

**stack?

<!-- -->

: string

Inherited from NonRetryableError.stack

### [**](#stackTraceLimit)staticexternalinheritedstackTraceLimit

**stackTraceLimit: number

Inherited from NonRetryableError.stackTraceLimit

The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`).

The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured *after* the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

## Methods<!-- -->[**](#Methods)

### [**](#captureStackTrace)staticexternalinheritedcaptureStackTrace

* ****captureStackTrace**(targetObject, constructorOpt): void

- Inherited from NonRetryableError.captureStackTrace

  Creates a `.stack` property on `targetObject`, which when accessed returns a string representing the location in the code at which `Error.captureStackTrace()` was called.

  ```
  const myObject = {};

  Error.captureStackTrace(myObject);

  myObject.stack;  // Similar to `new Error().stack`
  ```

  The first line of the trace will be prefixed with `${myObject.name}: ${myObject.message}`.

  The optional `constructorOpt` argument accepts a function. If given, all frames above `constructorOpt`, including `constructorOpt`, will be omitted from the generated stack trace.

  The `constructorOpt` argument is useful for hiding implementation details of error generation from the user. For instance:

  ```
  function a() {

    b();

  }



  function b() {

    c();

  }



  function c() {

    // Create an error without stack trace to avoid calculating the stack trace twice.

    const { stackTraceLimit } = Error;

    Error.stackTraceLimit = 0;

    const error = new Error();

    Error.stackTraceLimit = stackTraceLimit;



    // Capture the stack trace above function b

    Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace

    throw error;

  }



  a();
  ```

  ***

  #### Parameters

  * ##### externaltargetObject: object
  * ##### externaloptionalconstructorOpt: Function

  #### Returns void

### [**](#isError)staticexternalinheritedisError

* ****isError**(error): error is Error

- Inherited from NonRetryableError.isError

  Indicates whether the argument provided is a built-in Error instance or not.

  ***

  #### Parameters

  * ##### externalerror: unknown

  #### Returns error is Error

### [**](#prepareStackTrace)staticexternalinheritedprepareStackTrace

* ****prepareStackTrace**(err, stackTraces): any

- Inherited from NonRetryableError.prepareStackTrace

  * **@see**

    <https://v8.dev/docs/stack-trace-api#customizing-stack-traces>

  ***

  #### Parameters

  * ##### externalerr: Error
  * ##### externalstackTraces: CallSite\[]

  #### Returns any
