> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Class: ProtectedFileError

> Why a protected file read failed.

[browser](/api/modules/browser).ProtectedFileError

Why a protected file read failed. `code` is `Unauthenticated`, the
server's refusal code (for example `ProtectedStorage`), `Stalled`,
`Incomplete`, `AuthorizationChanged`, `Aborted` or `InvalidResponse`.
`received` counts the bytes delivered before a transfer failed.

## Hierarchy

* `Error`

  ↳ **`ProtectedFileError`**

## Constructors

### constructor

• **new ProtectedFileError**(`code`, `message`, `details?`)

#### Parameters

| Name | Type |
| :- | :- |
| `code` | `string` |
| `message` | `string` |
| `details` | `Object` |
| `details.status?` | `number` |
| `details.received?` | `number` |

#### Overrides

Error.constructor

## Properties

### code

• `Readonly` **code**: `string`

***

### status

• `Readonly` **status**: `undefined` | `number`

***

### received

• `Readonly` **received**: `number`

***

### stackTraceLimit

▪ `Static` **stackTraceLimit**: `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.

#### Inherited from

Error.stackTraceLimit

***

### cause

• `Optional` **cause**: `unknown`

#### Inherited from

Error.cause

***

### name

• **name**: `string`

#### Inherited from

Error.name

***

### message

• **message**: `string`

#### Inherited from

Error.message

***

### stack

• `Optional` **stack**: `string`

#### Inherited from

Error.stack

## Methods

### captureStackTrace

▸ `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 theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
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={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
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

| Name | Type |
| :- | :- |
| `targetObject` | `object` |
| `constructorOpt?` | `Function` |

#### Returns

`void`

#### Inherited from

Error.captureStackTrace

***

### prepareStackTrace

▸ `Static` **prepareStackTrace**(`err`, `stackTraces`): `any`

**`See`**

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

#### Parameters

| Name | Type |
| :- | :- |
| `err` | `Error` |
| `stackTraces` | `CallSite`\[] |

#### Returns

`any`

#### Inherited from

Error.prepareStackTrace
