> ## Documentation Index
> Fetch the complete documentation index at: https://resq-dependabot-github-actions-github-actions-478e18be3d.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# FetcherError

# Class: FetcherError

Defined in: [packages/http/src/fetcher.ts:176](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L176)

Thrown for transport-level fetcher failures: timeouts, network
errors, non-2xx responses, JSON-parse failures, and request-body
serialisation errors.

Distinct from [FetcherValidationError](./FetcherValidationError), which is reserved
for schema decode failures on otherwise-valid responses.

## Extends

* `Error`

## Constructors

### Constructor

> **new FetcherError**(`message`, `url`, `status?`, `responseData?`, `attempt?`): `FetcherError`

Defined in: [packages/http/src/fetcher.ts:177](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L177)

#### Parameters

##### message

`string`

##### url

`string`

##### status?

`number`

##### responseData?

`unknown`

##### attempt?

`number`

#### Returns

`FetcherError`

#### Overrides

`Error.constructor`

## Properties

### \[toStringTag]

> **\[toStringTag]**: `string` = `"FetcherError"`

Defined in: [packages/http/src/fetcher.ts:189](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L189)

***

### \~effect/ErrorReporter/attributes?

> `readonly` `optional` **\~effect/ErrorReporter/attributes?**: `ReadonlyRecord`\<`string`, `unknown`>

Defined in: node\_modules/effect/dist/ErrorReporter.d.ts:218

#### Inherited from

`Error.~effect/ErrorReporter/attributes`

***

### \~effect/ErrorReporter/ignore?

> `readonly` `optional` **\~effect/ErrorReporter/ignore?**: `boolean`

Defined in: node\_modules/effect/dist/ErrorReporter.d.ts:216

#### Inherited from

`Error.~effect/ErrorReporter/ignore`

***

### \~effect/ErrorReporter/severity?

> `readonly` `optional` **\~effect/ErrorReporter/severity?**: `Severity`

Defined in: node\_modules/effect/dist/ErrorReporter.d.ts:217

#### Inherited from

`Error.~effect/ErrorReporter/severity`

***

### \~effect/Runtime/errorExitCode?

> `readonly` `optional` **\~effect/Runtime/errorExitCode?**: `number`

Defined in: node\_modules/effect/dist/Runtime.d.ts:156

#### Inherited from

`Error.~effect/Runtime/errorExitCode`

***

### \~effect/Runtime/errorReported?

> `readonly` `optional` **\~effect/Runtime/errorReported?**: `boolean`

Defined in: node\_modules/effect/dist/Runtime.d.ts:157

#### Inherited from

`Error.~effect/Runtime/errorReported`

***

### attempt?

> `readonly` `optional` **attempt?**: `number`

Defined in: [packages/http/src/fetcher.ts:182](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L182)

Retry attempt number (1-indexed) at which the
failure occurred.

***

### cause?

> `optional` **cause?**: `unknown`

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

#### Inherited from

`Error.cause`

***

### message

> **message**: `string`

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

#### Inherited from

`Error.message`

***

### name

> **name**: `string`

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

#### Inherited from

`Error.name`

***

### responseData?

> `readonly` `optional` **responseData?**: `unknown`

Defined in: [packages/http/src/fetcher.ts:181](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L181)

Best-effort capture of the response body
(parsed when possible, otherwise the raw text).

***

### stack?

> `optional` **stack?**: `string`

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

#### Inherited from

`Error.stack`

***

### status?

> `readonly` `optional` **status?**: `number`

Defined in: [packages/http/src/fetcher.ts:180](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L180)

HTTP status code, when one was received.
Absent for timeouts and pre-flight errors.

***

### url

> `readonly` **url**: `string`

Defined in: [packages/http/src/fetcher.ts:179](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L179)

The request URL.

***

### stackTraceLimit

> `static` **stackTraceLimit**: `number`

Defined in: 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

`Error.stackTraceLimit`

## Methods

### toString()

> **toString**(): `string`

Defined in: [packages/http/src/fetcher.ts:191](https://github.com/resq-software/npm/blob/fe2e20ae9db8398a0db1e3218edaabb3cf7004d6/packages/http/src/fetcher.ts#L191)

Returns a string representation of an object.

#### Returns

`string`

***

### captureStackTrace()

> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`

Defined in: 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.

```js theme={null}
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 theme={null}
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

##### targetObject

`object`

##### constructorOpt?

`Function`

#### Returns

`void`

#### Inherited from

`Error.captureStackTrace`

***

### prepareStackTrace()

> `static` **prepareStackTrace**(`err`, `stackTraces`): `any`

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

#### Parameters

##### err

`Error`

##### stackTraces

`CallSite`\[]

#### Returns

`any`

#### See

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

#### Inherited from

`Error.prepareStackTrace`
