> This page is for Browser SDK, version v4 (default).
> For other versions, use one of these documentation indexes:
> - v4 (default): https://signalwire.com/docs/browser-sdk/v4/llms.txt
> - v3: https://signalwire.com/docs/browser-sdk/v3/llms.txt
> - v2: https://signalwire.com/docs/browser-sdk/v2/llms.txt

> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# PreflightError

> Error thrown when the preflight connectivity test fails.

Raised by [`SignalWire.preflight`](/docs/browser-sdk/v4/reference/signalwire#preflight) when the connectivity test fails at one of its phases. Inspect `phase` to discriminate (`signaling`, `media`, `connectivity`) — failure at the signaling phase usually means the user's network blocks the transport; failure at the media phase usually means device-permission or codec issues.

## **Extends**

* `Error`

## **Constructors**

### Constructor

```ts
new PreflightError(phase, originalError?): PreflightError
```

### Parameters

**`phase`** `string` — required

Preflight phase where the failure occurred (e.g. `signaling`, `media`, `connectivity`).

---

**`originalError`** `unknown`

Underlying error raised during preflight.

---

## **Properties**

**`originalError`** `unknown`

Underlying error raised during preflight.

---

**`phase`** `string` — required

Preflight phase where the failure occurred (e.g. `signaling`, `media`, `connectivity`).

---

## **Examples**

```ts
import { PreflightError } from '@signalwire/js';

try {
  const result = await client.preflight('/preflight-endpoint');
} catch (err) {
  if (err instanceof PreflightError) {
    console.error(`preflight failed at ${err.phase}:`, err.originalError);
  }
}
```