---
title: "SlackWebhookError"
summary: "@slack/webhook / SlackWebhookError"
url: "https://docs.slack.dev/tools/node-slack-sdk/reference/webhook/classes/SlackWebhookError"
type: "guide"
---

Source: https://docs.slack.dev/tools/node-slack-sdk/reference/webhook/classes/SlackWebhookError

[@slack/webhook](https://docs.slack.dev/tools/node-slack-sdk/reference/webhook.md) / SlackWebhookError

# Abstract Class: SlackWebhookError

Defined in: [packages/webhook/src/errors.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/webhook/src/errors.ts#L15)

## Extends {#extends}

*   `Error`

## Extended by {#extended-by}

*   [`IncomingWebhookHTTPError`](https://docs.slack.dev/tools/node-slack-sdk/reference/webhook/classes/incomingwebhookhttperror.md)
*   [`IncomingWebhookRequestError`](https://docs.slack.dev/tools/node-slack-sdk/reference/webhook/classes/incomingwebhookrequesterror.md)
*   [`WebhookTriggerHTTPError`](https://docs.slack.dev/tools/node-slack-sdk/reference/webhook/classes/webhooktriggerhttperror.md)
*   [`WebhookTriggerRequestError`](https://docs.slack.dev/tools/node-slack-sdk/reference/webhook/classes/webhooktriggerrequesterror.md)

## Constructors {#constructors}

### Constructor {#constructor}

```
new SlackWebhookError(message, options?): SlackWebhookError;
```

Defined in: [packages/webhook/src/errors.ts:18](https://github.com/slackapi/node-slack-sdk/blob/main/packages/webhook/src/errors.ts#L18)

#### Parameters {#parameters}

##### message {#message}

`string`

##### options? {#options}

`ErrorOptions`

#### Returns {#returns}

`SlackWebhookError`

#### Overrides {#overrides}

```
Error.constructor
```

## Properties {#properties}

### cause? {#cause}

```
optional cause?: unknown;
```

Defined in: node\_modules/typescript/lib/lib.es2022.error.d.ts:26

#### Inherited from {#inherited-from}

```
Error.cause
```

* * *

### code {#code}

```
abstract readonly code: ErrorCode;
```

Defined in: [packages/webhook/src/errors.ts:16](https://github.com/slackapi/node-slack-sdk/blob/main/packages/webhook/src/errors.ts#L16)

* * *

### message {#message-1}

```
message: string;
```

Defined in: node\_modules/typescript/lib/lib.es5.d.ts:1077

#### Inherited from {#inherited-from-1}

```
Error.message
```

* * *

### name {#name}

```
name: string;
```

Defined in: node\_modules/typescript/lib/lib.es5.d.ts:1076

#### Inherited from {#inherited-from-2}

```
Error.name
```

* * *

### stack? {#stack}

```
optional stack?: string;
```

Defined in: node\_modules/typescript/lib/lib.es5.d.ts:1078

#### Inherited from {#inherited-from-3}

```
Error.stack
```

* * *

### stackTraceLimit {#stacktracelimit}

```
static stackTraceLimit: number;
```

Defined in: packages/webhook/node\_modules/@types/node/globals.d.ts:67

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.

#### Inherited from {#inherited-from-4}

```
Error.stackTraceLimit
```

## Methods {#methods}

### captureStackTrace() {#capturestacktrace}

```
static captureStackTrace(targetObject, constructorOpt?): void;
```

Defined in: packages/webhook/node\_modules/@types/node/globals.d.ts:51

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 {#parameters-1}

##### targetObject {#targetobject}

`object`

##### constructorOpt? {#constructoropt}

`Function`

#### Returns {#returns-1}

`void`

#### Inherited from {#inherited-from-5}

```
Error.captureStackTrace
```

* * *

### prepareStackTrace() {#preparestacktrace}

```
static prepareStackTrace(err, stackTraces): any;
```

Defined in: packages/webhook/node\_modules/@types/node/globals.d.ts:55

#### Parameters {#parameters-2}

##### err {#err}

`Error`

##### stackTraces {#stacktraces}

`CallSite`\[\]

#### Returns {#returns-2}

`any`

#### See {#see}

[https://v8.dev/docs/stack-trace-api#customizing-stack-traces](https://v8.dev/docs/stack-trace-api#customizing-stack-traces)

#### Inherited from {#inherited-from-6}

```
Error.prepareStackTrace
```
