# SalesforceRestError (/docs/rest/api/classes/SalesforceRestError)



[@kysoql/rest](/docs/rest/api) / SalesforceRestError

Structured API errors. Details may contain org data; do not log them blindly.

## Extends [#extends]

* `Error`

## Constructors [#constructors]

<a id="api-constructor" />

### Constructor [#constructor]

```ts
new SalesforceRestError(status, errors): SalesforceRestError;
```

Creates an error from a Salesforce REST status and validated error details.

#### Parameters [#parameters]

| Parameter | Type                                                                                           |
| --------- | ---------------------------------------------------------------------------------------------- |
| `status`  | `number`                                                                                       |
| `errors`  | readonly [`SalesforceRestErrorDetail`](/docs/rest/api/interfaces/SalesforceRestErrorDetail)\[] |

#### Returns [#returns]

`SalesforceRestError`

#### Overrides [#overrides]

```ts
Error.constructor
```

## Methods [#methods]

<a id="api-capturestacktrace" />

### captureStackTrace() [#capturestacktrace]

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

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

```js
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:

```js
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]

| Parameter         | Type       |
| ----------------- | ---------- |
| `targetObject`    | `object`   |
| `constructorOpt?` | `Function` |

#### Returns [#returns-1]

`void`

#### Inherited from [#inherited-from]

```ts
Error.captureStackTrace
```

***

<a id="api-preparestacktrace" />

### prepareStackTrace() [#preparestacktrace]

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

#### Parameters [#parameters-2]

| Parameter     | Type          |
| ------------- | ------------- |
| `err`         | `Error`       |
| `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-1]

```ts
Error.prepareStackTrace
```

## Properties [#properties]

| Property                                                  | Modifier   | Type                                                                                           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                       | Inherited from          |
| --------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| <a id="api-property-stacktracelimit" /> `stackTraceLimit` | `static`   | `number`                                                                                       | 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. | `Error.stackTraceLimit` |
| <a id="api-property-status" /> `status`                   | `readonly` | `number`                                                                                       | HTTP status returned by Salesforce.                                                                                                                                                                                                                                                                                                                                                                                                               | -                       |
| <a id="api-property-errors" /> `errors`                   | `readonly` | readonly [`SalesforceRestErrorDetail`](/docs/rest/api/interfaces/SalesforceRestErrorDetail)\[] | Validated Salesforce error details returned in the response body.                                                                                                                                                                                                                                                                                                                                                                                 | -                       |
| <a id="api-property-name" /> `name`                       | `public`   | `string`                                                                                       | -                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `Error.name`            |
| <a id="api-property-message" /> `message`                 | `public`   | `string`                                                                                       | -                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `Error.message`         |
| <a id="api-property-stack" /> `stack?`                    | `public`   | `string`                                                                                       | -                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `Error.stack`           |
| <a id="api-property-cause" /> `cause?`                    | `public`   | `unknown`                                                                                      | -                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `Error.cause`           |
