---
title: Errors
source: https://infrared.city/docs/sdk/1.0/api/typescript/errors/
---

# Errors

<a id="analysispartserror"></a>

## AnalysisPartsError

Import from `@infrared-city/infrared-sdk-ts`.

A parts run that cannot be joined because a part did not produce a result.

`failedParts` names them; `runParts(input, { retryFrom: error.schedule })`
(or `runAndWait` with the same option) sends only those parts again.

### Extends

- `Error`

### Constructors

<a id="analysispartserror-constructor"></a>

#### Constructor

> **new AnalysisPartsError**(`message`, `failedParts`, `schedule`, `downloadFailedParts?`, `options?`): `AnalysisPartsError`

##### Parameters

| Parameter | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `message` | `string` | `undefined` | What went wrong. |
| `failedParts` | readonly `string`\[\] | `undefined` | Parts a `retryFrom` sends again; empty when every part has a result. |
| `schedule` | [`PartsSchedule`](run-an-analysis.md#partsschedule) | `undefined` | The run, with its accepted jobs. |
| `downloadFailedParts` | readonly `string`\[\] | `[]` | Parts whose result is on the server but did not download: `mergeParts(schedule)` (or a `retryFrom`, which then sends nothing) downloads them again. |
| `options?` | `ErrorOptions` | `undefined` | Standard error options, such as `cause`. |

##### Returns

`AnalysisPartsError`

##### Overrides

`Error.constructor`

### Properties

<a id="analysispartserror-downloadfailedparts"></a>

#### downloadFailedParts

> `readonly` **downloadFailedParts**: readonly `string`\[\] = `[]`

Parts whose result is on the server but did not download.

***

<a id="analysispartserror-failedparts"></a>

#### failedParts

> `readonly` **failedParts**: readonly `string`\[\]

Parts a `retryFrom` sends again; empty when every part has a result.

***

<a id="analysispartserror-name"></a>

#### name

> `readonly` **name**: `"AnalysisPartsError"` = `"AnalysisPartsError"`

##### Overrides

`Error.name`

***

<a id="analysispartserror-schedule"></a>

#### schedule

> `readonly` **schedule**: [`PartsSchedule`](run-an-analysis.md#partsschedule)

The run, with its accepted jobs.

***

<a id="areageometryprobeerror"></a>

## AreaGeometryProbeError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when resuming a saved schedule from an older SDK version that recorded a capability
probe with an unknown outcome. Resuming would repeat work whose billing state is unknown.
This SDK no longer submits probe jobs, so schedules it writes never raise this.

`areaSchedule` is the saved schedule and `acceptedProbeJobIds` the probe job ids it recorded.

### Extends

- `Error`

### Constructors

<a id="areageometryprobeerror-constructor"></a>

#### Constructor

> **new AreaGeometryProbeError**(`areaSchedule`, `acceptedProbeJobIds`): `AreaGeometryProbeError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `areaSchedule` | [`AreaSchedule`](run-an-analysis.md#areaschedule) |
| `acceptedProbeJobIds` | readonly `string`\[\] |

##### Returns

`AreaGeometryProbeError`

##### Overrides

`Error.constructor`

### Properties

<a id="areageometryprobeerror-acceptedprobejobids"></a>

#### acceptedProbeJobIds

> `readonly` **acceptedProbeJobIds**: readonly `string`\[\]

***

<a id="areageometryprobeerror-areaschedule"></a>

#### areaSchedule

> `readonly` **areaSchedule**: [`AreaSchedule`](run-an-analysis.md#areaschedule)

***

<a id="areageometryprobeerror-name"></a>

#### name

> `readonly` **name**: `"AreaGeometryProbeError"` = `"AreaGeometryProbeError"`

##### Overrides

`Error.name`

***

<a id="areageometryreferenceerror"></a>

## AreaGeometryReferenceError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when the API accepted a job whose geometry reference turned out to be invalid. The
accepted jobs cannot produce a trusted result, so the run stops.

`areaSchedule` is the schedule recorded so far and `acceptedJobIds` lists the jobs the API
accepted with the invalid reference, so you can find them for billing or support.

### Extends

- `Error`

### Constructors

<a id="areageometryreferenceerror-constructor"></a>

#### Constructor

> **new AreaGeometryReferenceError**(`areaSchedule`, `acceptedJobIds`): `AreaGeometryReferenceError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `areaSchedule` | [`AreaSchedule`](run-an-analysis.md#areaschedule) |
| `acceptedJobIds` | readonly `string`\[\] |

##### Returns

`AreaGeometryReferenceError`

##### Overrides

`Error.constructor`

### Properties

<a id="areageometryreferenceerror-acceptedjobids"></a>

#### acceptedJobIds

> `readonly` **acceptedJobIds**: readonly `string`\[\]

***

<a id="areageometryreferenceerror-areaschedule"></a>

#### areaSchedule

> `readonly` **areaSchedule**: [`AreaSchedule`](run-an-analysis.md#areaschedule)

***

<a id="areageometryreferenceerror-name"></a>

#### name

> `readonly` **name**: `"AreaGeometryReferenceError"` = `"AreaGeometryReferenceError"`

##### Overrides

`Error.name`

***

<a id="areatimeouterror"></a>

## AreaTimeoutError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown by `InfraredClient.runAreaAndWait` when the run does not finish
within `areaTimeout` seconds.

### Extends

- `Error`

### Constructors

<a id="areatimeouterror-constructor"></a>

#### Constructor

> **new AreaTimeoutError**(`message`, `areaState`): `AreaTimeoutError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `message` | `string` | The error message. |
| `areaState` | [`AreaState`](run-an-analysis.md#areastate) | The run's counts at the moment it timed out. |

##### Returns

`AreaTimeoutError`

##### Overrides

`Error.constructor`

### Properties

<a id="areatimeouterror-areastate"></a>

#### areaState

> `readonly` **areaState**: [`AreaState`](run-an-analysis.md#areastate)

The run's counts at the moment it timed out.

***

<a id="confighashpolicyerror"></a>

## ConfigHashPolicyError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when a resume is refused because the saved schedule's configuration hash was
computed by an older SDK and cannot be compared with this one.

Start a fresh run with the same inputs; tiles that already succeeded are unaffected.

### Extends

- `Error`

### Constructors

<a id="confighashpolicyerror-constructor"></a>

#### Constructor

> **new ConfigHashPolicyError**(`message`): `ConfigHashPolicyError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message` | `string` |

##### Returns

`ConfigHashPolicyError`

##### Overrides

`Error.constructor`

***

<a id="coreinitializationerror"></a>

## CoreInitializationError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when the core could not be initialised, for example because it could not be
fetched or compiled, or because the options passed to `initializeCore()` are invalid.

### Extends

- `Error`

### Extended by

- [`CoreTerminalError`](errors.md#coreterminalerror)

### Constructors

<a id="coreinitializationerror-constructor"></a>

#### Constructor

> **new CoreInitializationError**(`message?`): `CoreInitializationError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`CoreInitializationError`

##### Inherited from

`Error.constructor`

#### Constructor

> **new CoreInitializationError**(`message?`, `options?`): `CoreInitializationError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`CoreInitializationError`

##### Inherited from

`Error.constructor`

### Properties

<a id="coreinitializationerror-name"></a>

#### name

> `readonly` **name**: `"CoreInitializationError"` = `"CoreInitializationError"`

##### Overrides

`Error.name`

***

<a id="corenotreadyerror"></a>

## CoreNotReadyError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when a synchronous operation that needs the loaded core runs before
`initializeCore()` has completed.

### Extends

- `Error`

### Constructors

<a id="corenotreadyerror-constructor"></a>

#### Constructor

> **new CoreNotReadyError**(`method?`): `CoreNotReadyError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `method?` | `string` |

##### Returns

`CoreNotReadyError`

##### Overrides

`Error.constructor`

### Properties

<a id="corenotreadyerror-method"></a>

#### method

> `readonly` **method**: `string` \| `undefined`

The public function that needed the core, when the caller knows it.

***

<a id="corenotreadyerror-name"></a>

#### name

> `readonly` **name**: `"CoreNotReadyError"` = `"CoreNotReadyError"`

##### Overrides

`Error.name`

***

<a id="corenotreadyerror-realm"></a>

#### realm

> `readonly` **realm**: `"main thread"` \| `"Web Worker"` \| `"Node"`

The JavaScript realm that has no started core.

***

<a id="coreterminalerror"></a>

## CoreTerminalError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when the core loaded but failed its capability or version check.

This failure is final for the JavaScript realm (the page, worker or Node
process): every later `initializeCore` call rejects with the same error, so a
worker that sees it must end and a new worker must start. A plain
[CoreInitializationError](errors.md#coreinitializationerror) (a failed fetch or compile) can be retried in the
same realm. `terminal` lets a caller that only sees the error object tell the two
apart. `name` stays `"CoreInitializationError"`, so a check on the name still matches.

### Extends

- [`CoreInitializationError`](errors.md#coreinitializationerror)

### Constructors

<a id="coreterminalerror-constructor"></a>

#### Constructor

> **new CoreTerminalError**(`message?`): `CoreTerminalError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`CoreTerminalError`

##### Inherited from

[`CoreInitializationError`](errors.md#coreinitializationerror).[`constructor`](errors.md#coreinitializationerror-constructor)

#### Constructor

> **new CoreTerminalError**(`message?`, `options?`): `CoreTerminalError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`CoreTerminalError`

##### Inherited from

[`CoreInitializationError`](errors.md#coreinitializationerror).[`constructor`](errors.md#coreinitializationerror-constructor)

### Properties

<a id="coreterminalerror-name"></a>

#### name

> `readonly` **name**: `"CoreInitializationError"` = `"CoreInitializationError"`

##### Inherited from

[`CoreInitializationError`](errors.md#coreinitializationerror).[`name`](errors.md#coreinitializationerror-name)

***

<a id="coreterminalerror-terminal"></a>

#### terminal

> `readonly` **terminal**: `true` = `true`

***

<a id="coreversionskewerror"></a>

## CoreVersionSkewError

Import from `@infrared-city/infrared-sdk-ts`.

Reports an initialised core that lacks a function the SDK needs.

The SDK no longer throws this error: `initializeCore()` now refuses a mismatched
core build before any operation runs. The class remains exported so existing
`catch` and `instanceof` checks keep compiling.

### Extends

- `Error`

### Constructors

<a id="coreversionskewerror-constructor"></a>

#### Constructor

> **new CoreVersionSkewError**(`missing`): `CoreVersionSkewError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `missing` | readonly `string`\[\] |

##### Returns

`CoreVersionSkewError`

##### Overrides

`Error.constructor`

### Properties

<a id="coreversionskewerror-name"></a>

#### name

> `readonly` **name**: `"CoreVersionSkewError"` = `"CoreVersionSkewError"`

##### Overrides

`Error.name`

***

<a id="epwparseerror"></a>

## EpwParseError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown by `parseEpw` for an EPW file that cannot be used; the message gives
the reason, and the original error is kept as `cause`.

### Extends

- `Error`

### Constructors

<a id="epwparseerror-constructor"></a>

#### Constructor

> **new EpwParseError**(`message`, `options?`): `EpwParseError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `message` | `string` | The reason the file was refused. |
| `options?` | \{ `cause?`: `unknown`; \} | `cause` is the underlying error. |
| `options.cause?` | `unknown` | - |

##### Returns

`EpwParseError`

##### Overrides

`Error.constructor`

***

<a id="facadeartifactmismatcherror"></a>

## FacadeArtifactMismatchError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when the binary artifact of a facade batch would make the server place
sensors on buildings that the run plan did not count.

It is raised before any upload or paid request, so nothing has been billed.
`missing` lists planned target ids the artifact does not carry as targets, and
`unplanned` lists artifact target ids that the plan did not count.

### Extends

- `Error`

### Constructors

<a id="facadeartifactmismatcherror-constructor"></a>

#### Constructor

> **new FacadeArtifactMismatchError**(`analysisType`, `missing`, `unplanned`): `FacadeArtifactMismatchError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `analysisType` | `string` | - |
| `missing` | readonly `string`\[\] | Planned target ids that the artifact does not carry as targets. |
| `unplanned` | readonly `string`\[\] | Artifact target ids that the plan did not count. |

##### Returns

`FacadeArtifactMismatchError`

##### Overrides

`Error.constructor`

### Properties

<a id="facadeartifactmismatcherror-analysistype"></a>

#### analysisType

> `readonly` **analysisType**: `string`

***

<a id="facadeartifactmismatcherror-missing"></a>

#### missing

> `readonly` **missing**: readonly `string`\[\]

Planned target ids that the artifact does not carry as targets.

***

<a id="facadeartifactmismatcherror-name"></a>

#### name

> `readonly` **name**: `"FacadeArtifactMismatchError"` = `"FacadeArtifactMismatchError"`

##### Overrides

`Error.name`

***

<a id="facadeartifactmismatcherror-unplanned"></a>

#### unplanned

> `readonly` **unplanned**: readonly `string`\[\]

Artifact target ids that the plan did not count.

***

<a id="facadecountcontracterror"></a>

## FacadeCountContractError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when a facade retry is refused because the saved schedule's batches
were sized with an older sensor-counting rule.

The schedule's finished tiles stay readable; start a fresh run to run the
whole area again under the current rule.

### Extends

- `Error`

### Constructors

<a id="facadecountcontracterror-constructor"></a>

#### Constructor

> **new FacadeCountContractError**(`message`): `FacadeCountContractError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message` | `string` |

##### Returns

`FacadeCountContractError`

##### Overrides

`Error.constructor`

***

<a id="geodatadependencyerror"></a>

## GeodataDependencyError

Import from `@infrared-city/infrared-sdk-ts`.

The optional Overture parquet packages are not installed.

`hyparquet` and `hyparquet-compressors` are optional peer dependencies:
only the Overture reader loads them, so a caller who brings their own data
never installs them. Everything else in the package (payloads, area runs
over your own geometry, results, images, the static weather catalog and the
FlatGeobuf layers) works without them.

The message names both packages and the exact install command, whichever of
the two is missing, because installing only one is never the fix. There is
no fallback decoder.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="geodatadependencyerror-constructor"></a>

#### Constructor

> **new GeodataDependencyError**(`packageName`, `cause?`): `GeodataDependencyError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `packageName` | `string` |
| `cause?` | `unknown` |

##### Returns

`GeodataDependencyError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="geodatadependencyerror-name"></a>

#### name

> `readonly` **name**: `"GeodataDependencyError"` = `"GeodataDependencyError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="geodatadependencyerror-packagename"></a>

#### packageName

> `readonly` **packageName**: `string`

The package that could not be loaded.

***

<a id="geodatadependencyerror-installcommand"></a>

#### installCommand

> `readonly` `static` **installCommand**: `"npm install hyparquet hyparquet-compressors"` = `INSTALL_COMMAND`

The command to run, so a caller can print it without parsing prose.

***

<a id="geodataerror"></a>

## GeodataError

Import from `@infrared-city/infrared-sdk-ts`.

Base class for every direct data-acquisition failure.

Catch this class to handle any error thrown by the geodata readers.

### Extends

- `Error`

### Extended by

- [`GeodataDependencyError`](errors.md#geodatadependencyerror)
- [`GeodataFetchError`](errors.md#geodatafetcherror)
- [`GeodataRangeError`](errors.md#geodatarangeerror)
- [`HostNotAllowedError`](errors.md#hostnotallowederror)
- [`OvertureFileLimitError`](errors.md#overturefilelimiterror)
- [`OvertureReadTooLargeError`](errors.md#overturereadtoolargeerror)
- [`SiteReadError`](errors.md#sitereaderror)

### Constructors

<a id="geodataerror-constructor"></a>

#### Constructor

> **new GeodataError**(`message?`): `GeodataError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`GeodataError`

##### Inherited from

`Error.constructor`

#### Constructor

> **new GeodataError**(`message?`, `options?`): `GeodataError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`GeodataError`

##### Inherited from

`Error.constructor`

### Properties

<a id="geodataerror-name"></a>

#### name

> `readonly` **name**: `string` = `"GeodataError"`

##### Overrides

`Error.name`

***

<a id="geodatafetcherror"></a>

## GeodataFetchError

Import from `@infrared-city/infrared-sdk-ts`.

A public host answered in a way the reader cannot use.

`status` carries the HTTP status code when there was one.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="geodatafetcherror-constructor"></a>

#### Constructor

> **new GeodataFetchError**(`url`, `detail`, `status?`): `GeodataFetchError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `url` | `string` |
| `detail` | `string` |
| `status?` | `number` |

##### Returns

`GeodataFetchError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="geodatafetcherror-name"></a>

#### name

> `readonly` **name**: `"GeodataFetchError"` = `"GeodataFetchError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="geodatafetcherror-status"></a>

#### status?

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

***

<a id="geodatarangeerror"></a>

## GeodataRangeError

Import from `@infrared-city/infrared-sdk-ts`.

A ranged read could not be trusted or would not fit.

Three cases, all of which must be loud: the object changed between two
ranges of one read (`If-Match` → 412), a server answered a `Range`
request with the whole object, or a whole-object read would exceed the
caller's byte cap.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="geodatarangeerror-constructor"></a>

#### Constructor

> **new GeodataRangeError**(`url`, `detail`, `status?`): `GeodataRangeError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `url` | `string` |
| `detail` | `string` |
| `status?` | `number` |

##### Returns

`GeodataRangeError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="geodatarangeerror-name"></a>

#### name

> `readonly` **name**: `"GeodataRangeError"` = `"GeodataRangeError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="geodatarangeerror-status"></a>

#### status?

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

***

<a id="geometryreferenceacknowledgementerror"></a>

## GeometryReferenceAcknowledgementError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when the API accepted a job that refers to previously uploaded geometry but
did not return the acknowledgement that confirms the geometry was resolved.

It is not safe to retry; see [GeometryReferenceSubmissionError](errors.md#geometryreferencesubmissionerror).

### Extends

- [`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror)

### Constructors

<a id="geometryreferenceacknowledgementerror-constructor"></a>

#### Constructor

> **new GeometryReferenceAcknowledgementError**(`acceptedJobIds?`, `reason?`): `GeometryReferenceAcknowledgementError`

##### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `acceptedJobIds` | readonly `string`\[\] | `[]` |
| `reason` | `string` | `"invalid-geometry-acknowledgement"` |

##### Returns

`GeometryReferenceAcknowledgementError`

##### Overrides

[`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror).[`constructor`](errors.md#geometryreferencesubmissionerror-constructor)

### Properties

<a id="geometryreferenceacknowledgementerror-acceptedjobids"></a>

#### acceptedJobIds

> `readonly` **acceptedJobIds**: readonly `string`\[\]

Ids of the jobs the API reported as accepted, without duplicates.

##### Inherited from

[`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror).[`acceptedJobIds`](errors.md#geometryreferencesubmissionerror-acceptedjobids)

***

<a id="geometryreferenceacknowledgementerror-invalidreference"></a>

#### invalidReference

> `readonly` **invalidReference**: `true` = `true`

Always `true`: the reference or its outcome cannot be used.

##### Inherited from

[`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror).[`invalidReference`](errors.md#geometryreferencesubmissionerror-invalidreference)

***

<a id="geometryreferenceacknowledgementerror-name"></a>

#### name

> `readonly` **name**: `string` = `"GeometryReferenceAcknowledgementError"`

##### Overrides

[`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror).[`name`](errors.md#geometryreferencesubmissionerror-name)

***

<a id="geometryreferenceacknowledgementerror-nonretryable"></a>

#### nonRetryable

> `readonly` **nonRetryable**: `true` = `true`

Always `true`: repeating the submission is not safe.

##### Inherited from

[`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror).[`nonRetryable`](errors.md#geometryreferencesubmissionerror-nonretryable)

***

<a id="geometryreferenceacknowledgementerror-reason"></a>

#### reason

> `readonly` **reason**: `string` = `"geometry-reference-outcome-uncertain"`

##### Inherited from

[`GeometryReferenceSubmissionError`](errors.md#geometryreferencesubmissionerror).[`reason`](errors.md#geometryreferencesubmissionerror-reason)

***

<a id="geometryreferencesubmissionerror"></a>

## GeometryReferenceSubmissionError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a submission that refers to previously uploaded geometry may have
created a job, but its outcome cannot be used.

It is not safe to retry. `acceptedJobIds` lists any jobs the API reported as
accepted, so they can be reconciled against billing, and `reason` is a short
machine-readable code for why the submission was refused.

### Extends

- `AcceptedResponseError`

### Extended by

- [`GeometryReferenceAcknowledgementError`](errors.md#geometryreferenceacknowledgementerror)

### Constructors

<a id="geometryreferencesubmissionerror-constructor"></a>

#### Constructor

> **new GeometryReferenceSubmissionError**(`acceptedJobIds?`, `reason?`, `message?`): `GeometryReferenceSubmissionError`

##### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `acceptedJobIds` | readonly `string`\[\] | `[]` |
| `reason` | `string` | `"geometry-reference-outcome-uncertain"` |
| `message` | `string` | `"geometry-reference submission cannot be used or retried safely"` |

##### Returns

`GeometryReferenceSubmissionError`

##### Overrides

`AcceptedResponseError.constructor`

### Properties

<a id="geometryreferencesubmissionerror-acceptedjobids"></a>

#### acceptedJobIds

> `readonly` **acceptedJobIds**: readonly `string`\[\]

Ids of the jobs the API reported as accepted, without duplicates.

***

<a id="geometryreferencesubmissionerror-invalidreference"></a>

#### invalidReference

> `readonly` **invalidReference**: `true` = `true`

Always `true`: the reference or its outcome cannot be used.

***

<a id="geometryreferencesubmissionerror-name"></a>

#### name

> `readonly` **name**: `string` = `"GeometryReferenceSubmissionError"`

##### Overrides

`AcceptedResponseError.name`

***

<a id="geometryreferencesubmissionerror-nonretryable"></a>

#### nonRetryable

> `readonly` **nonRetryable**: `true` = `true`

Always `true`: repeating the submission is not safe.

***

<a id="geometryreferencesubmissionerror-reason"></a>

#### reason

> `readonly` **reason**: `string` = `"geometry-reference-outcome-uncertain"`

***

<a id="gridimageerror"></a>

## GridImageError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a grid cannot be rendered locally, for example because it is empty,
ragged or mixes text into a numeric result.

### Extends

- `Error`

### Constructors

<a id="gridimageerror-constructor"></a>

#### Constructor

> **new GridImageError**(`message?`): `GridImageError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`GridImageError`

##### Inherited from

`Error.constructor`

#### Constructor

> **new GridImageError**(`message?`, `options?`): `GridImageError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`GridImageError`

##### Inherited from

`Error.constructor`

### Properties

<a id="gridimageerror-name"></a>

#### name

> `readonly` **name**: `"GridImageError"` = `"GridImageError"`

##### Overrides

`Error.name`

***

<a id="hostnotallowederror"></a>

## HostNotAllowedError

Import from `@infrared-city/infrared-sdk-ts`.

A URL outside the public data allow-list was requested.

The allow-list is what keeps credentials off public objects and keeps a
caller-supplied manifest from redirecting a range read at an arbitrary
host.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="hostnotallowederror-constructor"></a>

#### Constructor

> **new HostNotAllowedError**(`url`): `HostNotAllowedError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `url` | `string` |

##### Returns

`HostNotAllowedError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="hostnotallowederror-name"></a>

#### name

> `readonly` **name**: `"HostNotAllowedError"` = `"HostNotAllowedError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="invalidoptionerror"></a>

## InvalidOptionError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when an option is given a value the SDK does not support, or a removed option is
passed. The message names what to use instead.

### Extends

- `TypeError`

### Constructors

<a id="invalidoptionerror-constructor"></a>

#### Constructor

> **new InvalidOptionError**(`message?`): `InvalidOptionError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`InvalidOptionError`

##### Inherited from

`TypeError.constructor`

#### Constructor

> **new InvalidOptionError**(`message?`, `options?`): `InvalidOptionError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`InvalidOptionError`

##### Inherited from

`TypeError.constructor`

#### Constructor

> **new InvalidOptionError**(`message?`): `InvalidOptionError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`InvalidOptionError`

##### Inherited from

`TypeError.constructor`

#### Constructor

> **new InvalidOptionError**(`message?`, `options?`): `InvalidOptionError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`InvalidOptionError`

##### Inherited from

`TypeError.constructor`

### Properties

<a id="invalidoptionerror-name"></a>

#### name

> `readonly` **name**: `"InvalidOptionError"` = `"InvalidOptionError"`

##### Overrides

`TypeError.name`

***

<a id="jobabortederror"></a>

## JobAbortedError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when waiting for a job was cancelled through its `AbortSignal`.

### Extends

- `Error`

### Constructors

<a id="jobabortederror-constructor"></a>

#### Constructor

> **new JobAbortedError**(`jobId`): `JobAbortedError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `jobId` | `string` | Id of the job that was being waited on. |

##### Returns

`JobAbortedError`

##### Overrides

`Error.constructor`

### Properties

<a id="jobabortederror-jobid"></a>

#### jobId

> `readonly` **jobId**: `string`

Id of the job that was being waited on.

***

<a id="jobabortederror-name"></a>

#### name

> `readonly` **name**: `"JobAbortedError"` = `"JobAbortedError"`

##### Overrides

`Error.name`

***

<a id="jobfailederror"></a>

## JobFailedError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a job finished with status `failed`.

### Extends

- `Error`

### Constructors

<a id="jobfailederror-constructor"></a>

#### Constructor

> **new JobFailedError**(`jobId`, `errorMessage`): `JobFailedError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `jobId` | `string` | Id of the job that failed. |
| `errorMessage` | `string` | The failure message reported for the job; may be empty. |

##### Returns

`JobFailedError`

##### Overrides

`Error.constructor`

### Properties

<a id="jobfailederror-errormessage"></a>

#### errorMessage

> `readonly` **errorMessage**: `string`

The failure message reported for the job; may be empty.

***

<a id="jobfailederror-jobid"></a>

#### jobId

> `readonly` **jobId**: `string`

Id of the job that failed.

***

<a id="jobfailederror-name"></a>

#### name

> `readonly` **name**: `"JobFailedError"` = `"JobFailedError"`

##### Overrides

`Error.name`

***

<a id="jobnotcompletederror"></a>

## JobNotCompletedError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when results are requested for a job that has not completed.

### Extends

- `Error`

### Constructors

<a id="jobnotcompletederror-constructor"></a>

#### Constructor

> **new JobNotCompletedError**(`jobId`, `status`): `JobNotCompletedError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `jobId` | `string` | Id of the job. |
| `status` | [`JobStatus`](run-an-analysis.md#jobstatus) | The status the job had when results were requested. |

##### Returns

`JobNotCompletedError`

##### Overrides

`Error.constructor`

### Properties

<a id="jobnotcompletederror-jobid"></a>

#### jobId

> `readonly` **jobId**: `string`

Id of the job.

***

<a id="jobnotcompletederror-name"></a>

#### name

> `readonly` **name**: `"JobNotCompletedError"` = `"JobNotCompletedError"`

##### Overrides

`Error.name`

***

<a id="jobnotcompletederror-status"></a>

#### status

> `readonly` **status**: [`JobStatus`](run-an-analysis.md#jobstatus)

The status the job had when results were requested.

***

<a id="jobtimeouterror"></a>

## JobTimeoutError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when waiting for a job ran past its timeout before the job finished.

### Extends

- `Error`

### Constructors

<a id="jobtimeouterror-constructor"></a>

#### Constructor

> **new JobTimeoutError**(`jobId`): `JobTimeoutError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `jobId` | `string` | Id of the job that was being waited on. |

##### Returns

`JobTimeoutError`

##### Overrides

`Error.constructor`

### Properties

<a id="jobtimeouterror-jobid"></a>

#### jobId

> `readonly` **jobId**: `string`

Id of the job that was being waited on.

***

<a id="jobtimeouterror-name"></a>

#### name

> `readonly` **name**: `"JobTimeoutError"` = `"JobTimeoutError"`

##### Overrides

`Error.name`

***

<a id="overturefilelimiterror"></a>

## OvertureFileLimitError

Import from `@infrared-city/infrared-sdk-ts`.

More Overture files match an area than the `maxFiles` option allows.

Reading only the first N files would silently drop features everywhere in
the area, so the read fails instead. The error names both counts and the
caller decides whether to raise `maxFiles` or read a smaller area.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="overturefilelimiterror-constructor"></a>

#### Constructor

> **new OvertureFileLimitError**(`collection`, `files`, `maxFiles`): `OvertureFileLimitError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `collection` | `string` | The Overture collection being read, such as `"building"`. |
| `files` | `number` | Number of files that match the area. |
| `maxFiles` | `number` | The `maxFiles` limit that was exceeded. |

##### Returns

`OvertureFileLimitError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="overturefilelimiterror-collection"></a>

#### collection

> `readonly` **collection**: `string`

The Overture collection being read, such as `"building"`.

***

<a id="overturefilelimiterror-files"></a>

#### files

> `readonly` **files**: `number`

Number of files that match the area.

***

<a id="overturefilelimiterror-maxfiles"></a>

#### maxFiles

> `readonly` **maxFiles**: `number`

The `maxFiles` limit that was exceeded.

***

<a id="overturefilelimiterror-name"></a>

#### name

> `readonly` **name**: `"OvertureFileLimitError"` = `"OvertureFileLimitError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="overturereadtoolargeerror"></a>

## OvertureReadTooLargeError

Import from `@infrared-city/infrared-sdk-ts`.

An Overture read would move more compressed data than the runtime allows.

The amount to fetch is known from the parquet file footers before any data
is fetched, so an area too large to decode fails up front. The error names
the limit, the planned size and the rectangle it was planned for. Read a
smaller area or raise `maxPlannedBytes`.

The limit applies to one call, not to each collection: an area read of
several ground layers shares one limit.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="overturereadtoolargeerror-constructor"></a>

#### Constructor

> **new OvertureReadTooLargeError**(`collection`, `plannedBytes`, `limitBytes`, `files`, `rowGroups`, `bbox`): `OvertureReadTooLargeError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `collection` | `string` | The Overture collection being read, such as `"building"`. |
| `plannedBytes` | `number` | Compressed bytes the read would have fetched. |
| `limitBytes` | `number` | The byte limit that was exceeded. |
| `files` | `number` | Number of parquet files in the plan. |
| `rowGroups` | `number` | Number of row groups in the plan. |
| `bbox` | \{ `east`: `number`; `north`: `number`; `south`: `number`; `west`: `number`; \} | The rectangle the read was planned for. |
| `bbox.east` | `number` | - |
| `bbox.north` | `number` | - |
| `bbox.south` | `number` | - |
| `bbox.west` | `number` | - |

##### Returns

`OvertureReadTooLargeError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="overturereadtoolargeerror-bbox"></a>

#### bbox

> `readonly` **bbox**: `object`

The rectangle the read was planned for.

##### east

> **east**: `number`

##### north

> **north**: `number`

##### south

> **south**: `number`

##### west

> **west**: `number`

***

<a id="overturereadtoolargeerror-collection"></a>

#### collection

> `readonly` **collection**: `string`

The Overture collection being read, such as `"building"`.

***

<a id="overturereadtoolargeerror-files"></a>

#### files

> `readonly` **files**: `number`

Number of parquet files in the plan.

***

<a id="overturereadtoolargeerror-limitbytes"></a>

#### limitBytes

> `readonly` **limitBytes**: `number`

The byte limit that was exceeded.

***

<a id="overturereadtoolargeerror-name"></a>

#### name

> `readonly` **name**: `"OvertureReadTooLargeError"` = `"OvertureReadTooLargeError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="overturereadtoolargeerror-plannedbytes"></a>

#### plannedBytes

> `readonly` **plannedBytes**: `number`

Compressed bytes the read would have fetched.

***

<a id="overturereadtoolargeerror-rowgroups"></a>

#### rowGroups

> `readonly` **rowGroups**: `number`

Number of row groups in the plan.

***

<a id="partstimeouterror"></a>

## PartsTimeoutError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when the parts of a run do not all finish within the timeout.

The parts are already submitted and billed. `schedule` holds the accepted jobs, so the
run can be merged again later or passed as `retryFrom`.

### Extends

- `Error`

### Constructors

<a id="partstimeouterror-constructor"></a>

#### Constructor

> **new PartsTimeoutError**(`message`, `schedule`): `PartsTimeoutError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `message` | `string` | What timed out and how many parts had finished. |
| `schedule` | [`PartsSchedule`](run-an-analysis.md#partsschedule) | The submitted parts run, with its accepted jobs. |

##### Returns

`PartsTimeoutError`

##### Overrides

`Error.constructor`

### Properties

<a id="partstimeouterror-name"></a>

#### name

> `readonly` **name**: `"PartsTimeoutError"` = `"PartsTimeoutError"`

##### Overrides

`Error.name`

***

<a id="partstimeouterror-schedule"></a>

#### schedule

> `readonly` **schedule**: [`PartsSchedule`](run-an-analysis.md#partsschedule)

The submitted parts run, with its accepted jobs.

***

<a id="readmarginerror"></a>

## ReadMarginError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a run needs a wider read margin than the layer it was given was
acquired with.

It carries both margins and both analysis types, so you can see what to
re-acquire with. Re-acquire the layer with the analysis type the run needs, or
with no analysis type at all, which reads the widest margin and is valid for
every analysis.

### Extends

- `Error`

### Constructors

<a id="readmarginerror-constructor"></a>

#### Constructor

> **new ReadMarginError**(`fields`): `ReadMarginError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `fields` | \{ `acquiredAnalysisType?`: `string`; `acquiredMarginM`: `number`; `layer`: `string`; `requiredAnalysisType?`: `string`; `requiredMarginM`: `number`; \} |
| `fields.acquiredAnalysisType?` | `string` |
| `fields.acquiredMarginM` | `number` |
| `fields.layer` | `string` |
| `fields.requiredAnalysisType?` | `string` |
| `fields.requiredMarginM` | `number` |

##### Returns

`ReadMarginError`

##### Overrides

`Error.constructor`

### Properties

<a id="readmarginerror-acquiredanalysistype"></a>

#### acquiredAnalysisType

> `readonly` **acquiredAnalysisType**: `string` \| `undefined`

The analysis type the layer was acquired for, when recorded.

***

<a id="readmarginerror-acquiredmarginm"></a>

#### acquiredMarginM

> `readonly` **acquiredMarginM**: `number`

The read margin, in metres, the layer was acquired with.

***

<a id="readmarginerror-layer"></a>

#### layer

> `readonly` **layer**: `string`

The layer that was acquired too narrowly, for example `"buildings"`.

***

<a id="readmarginerror-requiredanalysistype"></a>

#### requiredAnalysisType

> `readonly` **requiredAnalysisType**: `string` \| `undefined`

The analysis type that sets the required margin.

***

<a id="readmarginerror-requiredmarginm"></a>

#### requiredMarginM

> `readonly` **requiredMarginM**: `number`

The read margin, in metres, the run needs.

***

<a id="registryfetcherror"></a>

## RegistryFetchError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when the colour registry could not be fetched or its answer was not usable:
a URL that is not HTTPS on the registry host, a redirect, an HTTP error, a timeout or
abort, a body that is too large or not JSON, or a document without colour configurations.

### Extends

- `Error`

### Constructors

<a id="registryfetcherror-constructor"></a>

#### Constructor

> **new RegistryFetchError**(`message?`): `RegistryFetchError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`RegistryFetchError`

##### Inherited from

`Error.constructor`

#### Constructor

> **new RegistryFetchError**(`message?`, `options?`): `RegistryFetchError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`RegistryFetchError`

##### Inherited from

`Error.constructor`

### Properties

<a id="registryfetcherror-name"></a>

#### name

> `readonly` **name**: `"RegistryFetchError"` = `"RegistryFetchError"`

##### Overrides

`Error.name`

***

<a id="sitechunkfailure"></a>

## SiteChunkFailure

Import from `@infrared-city/infrared-sdk-ts`.

One read chunk that failed during a site read.

`row` and `col` are always `-1`: a site read fails by read chunk, not by
simulation tile, so a chunk has no place in the simulation grid. The chunk
id (`tileId`) is `chunk-r{row}c{col}`, row-major and zero-based.

### Properties

| Property | Modifier | Type | Description |
| ------ | ------ | ------ | ------ |
| <a id="sitechunkfailure-col"></a> `col` | `readonly` | `number` | Always `-1`. |
| <a id="sitechunkfailure-error"></a> `error` | `readonly` | `string` | The failure message of that chunk. |
| <a id="sitechunkfailure-row"></a> `row` | `readonly` | `number` | Always `-1`. |
| <a id="sitechunkfailure-tileid"></a> `tileId` | `readonly` | `string` | The chunk id, `chunk-r{row}c{col}`. |

***

<a id="sitereaderror"></a>

## SiteReadError

Import from `@infrared-city/infrared-sdk-ts`.

A site read in which at least one read chunk failed.

Every chunk feeds the site, so one failing chunk fails the whole read. A
partial result would be an emptier city that nobody can see. `failedTiles`
lists every chunk that failed, in row-major order.

`cause` is the first underlying failure in chunk order, for example an
`OvertureReadTooLargeError` or a `GeodataFetchError`. Catch this class and
read `cause` for the reason and `failedTiles` for which chunks failed.

### Extends

- [`GeodataError`](errors.md#geodataerror)

### Constructors

<a id="sitereaderror-constructor"></a>

#### Constructor

> **new SiteReadError**(`message`, `failedTiles`, `cause?`): `SiteReadError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `message` | `string` | - |
| `failedTiles` | readonly [`SiteChunkFailure`](errors.md#sitechunkfailure)\[\] | Every chunk that failed, in row-major order. |
| `cause?` | `unknown` | - |

##### Returns

`SiteReadError`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`constructor`](errors.md#geodataerror-constructor)

### Properties

<a id="sitereaderror-failedtiles"></a>

#### failedTiles

> `readonly` **failedTiles**: readonly [`SiteChunkFailure`](errors.md#sitechunkfailure)\[\]

Every chunk that failed, in row-major order.

***

<a id="sitereaderror-name"></a>

#### name

> `readonly` **name**: `"SiteReadError"` = `"SiteReadError"`

##### Overrides

[`GeodataError`](errors.md#geodataerror).[`name`](errors.md#geodataerror-name)

***

<a id="submissionuncertainerror"></a>

## SubmissionUncertainError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a job submission was sent but it is not certain whether the API created a
job, so repeating it could be billed twice.

`acceptedJobIds` lists any job ids the API reported, so they can be checked or
reconciled against billing. The SDK does not retry such a submission by itself.

### Extends

- `Error`

### Constructors

<a id="submissionuncertainerror-constructor"></a>

#### Constructor

> **new SubmissionUncertainError**(`acceptedJobIds`, `status?`): `SubmissionUncertainError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `acceptedJobIds` | readonly `string`\[\] |
| `status?` | `number` |

##### Returns

`SubmissionUncertainError`

##### Overrides

`Error.constructor`

### Properties

<a id="submissionuncertainerror-acceptedjobids"></a>

#### acceptedJobIds

> `readonly` **acceptedJobIds**: readonly `string`\[\]

***

<a id="submissionuncertainerror-name"></a>

#### name

> `readonly` **name**: `"SubmissionUncertainError"` = `"SubmissionUncertainError"`

##### Overrides

`Error.name`

***

<a id="submissionuncertainerror-phase"></a>

#### phase

> `readonly` **phase**: `"unknown-acceptance"` = `"unknown-acceptance"`

Always `"unknown-acceptance"`.

***

<a id="submissionuncertainerror-status"></a>

#### status

> `readonly` **status**: `number` \| `undefined`

The HTTP status when the answer was a redirect (3xx) or a server error (5xx), otherwise `undefined`.

***

<a id="tilefailure"></a>

## TileFailure

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

A tile that did not contribute to the merged grid, and why.

### Properties

| Property | Modifier | Type | Description |
| ------ | ------ | ------ | ------ |
| <a id="tilefailure-col"></a> `col` | `readonly` | `number` | Column of the tile in the tile grid. |
| <a id="tilefailure-error"></a> `error` | `readonly` | `string` | A description of what went wrong. |
| <a id="tilefailure-exception"></a> `exception?` | `readonly` | `Error` | The underlying error, when there was one. |
| <a id="tilefailure-phase"></a> `phase?` | `readonly` | [`TileFailurePhase`](errors.md#tilefailurephase) | The stage at which the tile failed. |
| <a id="tilefailure-row"></a> `row` | `readonly` | `number` | Row of the tile in the tile grid. |
| <a id="tilefailure-tileid"></a> `tileId` | `readonly` | `string` | Identifier of the tile. |

***

<a id="tilefailurephase"></a>

## TileFailurePhase

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

> **TileFailurePhase** = *typeof* [`TileFailurePhase`](errors.md#tilefailurephase)\[keyof *typeof* [`TileFailurePhase`](errors.md#tilefailurephase)\]

The stage at which a tile failed or was skipped.


> `const` **TileFailurePhase**: `object`

The stage at which a tile failed or was skipped: `Submit`, `Compute`, `Download` or
`Skipped`.

### Type Declaration

| Name | Type | Default value |
| ------ | ------ | ------ |
| <a id="tilefailurephase-compute"></a> `Compute` | `"compute"` | `"compute"` |
| <a id="tilefailurephase-download"></a> `Download` | `"download"` | `"download"` |
| <a id="tilefailurephase-skipped"></a> `Skipped` | `"skipped"` | `"skipped"` |
| <a id="tilefailurephase-submit"></a> `Submit` | `"submit"` | `"submit"` |

***

<a id="vegetationmesherror"></a>

## VegetationMeshError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a vegetation operation fails in a way the caller must see, for
example a malformed feature collection or a failed conversion.

### Extends

- `Error`

### Constructors

<a id="vegetationmesherror-constructor"></a>

#### Constructor

> **new VegetationMeshError**(`message?`): `VegetationMeshError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |

##### Returns

`VegetationMeshError`

##### Inherited from

`Error.constructor`

#### Constructor

> **new VegetationMeshError**(`message?`, `options?`): `VegetationMeshError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message?` | `string` |
| `options?` | `ErrorOptions` |

##### Returns

`VegetationMeshError`

##### Inherited from

`Error.constructor`

### Properties

<a id="vegetationmesherror-name"></a>

#### name

> `readonly` **name**: `"VegetationMeshError"` = `"VegetationMeshError"`

##### Overrides

`Error.name`

***

<a id="weatheridentityerror"></a>

## WeatherIdentityError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/tiling`.

Thrown when a retry is refused because its weather cannot be shown to be the weather the
original run used, or because a weather-bearing payload cannot be identified at all.

Start a fresh run, or build the retry payload from the same weather: the same file, catalog
window or arrays.

### Extends

- `Error`

### Constructors

<a id="weatheridentityerror-constructor"></a>

#### Constructor

> **new WeatherIdentityError**(`message`): `WeatherIdentityError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message` | `string` |

##### Returns

`WeatherIdentityError`

##### Overrides

`Error.constructor`

***

<a id="weathermodelinputserror"></a>

## WeatherModelInputsError

Import from `@infrared-city/infrared-sdk-ts`.

Thrown when a weather document cannot supply what the requested analysis
needs for the requested time window; the message gives the reason, and the
original error is kept as `cause`.

### Extends

- `Error`

### Constructors

<a id="weathermodelinputserror-constructor"></a>

#### Constructor

> **new WeatherModelInputsError**(`message`, `options?`): `WeatherModelInputsError`

##### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `message` | `string` | The reason the document cannot serve the request. |
| `options?` | \{ `cause?`: `unknown`; \} | `cause` is the underlying error. |
| `options.cause?` | `unknown` | - |

##### Returns

`WeatherModelInputsError`

##### Overrides

`Error.constructor`

***

<a id="weatherserviceerror"></a>

## WeatherServiceError

Import from `@infrared-city/infrared-sdk-ts`, `@infrared-city/infrared-sdk-ts/utilities`.

Thrown when a weather read fails.

`statusCode` is an HTTP-style status and `operation` names the call that failed. A
malformed catalog, a body that is not JSON and a refused answer are all `502`: the
weather host was reached but its answer was unusable.

### Extends

- `Error`

### Constructors

<a id="weatherserviceerror-constructor"></a>

#### Constructor

> **new WeatherServiceError**(`message`, `statusCode`, `operation`): `WeatherServiceError`

##### Parameters

| Parameter | Type |
| ------ | ------ |
| `message` | `string` |
| `statusCode` | `number` |
| `operation` | `string` |

##### Returns

`WeatherServiceError`

##### Overrides

`Error.constructor`

### Properties

<a id="weatherserviceerror-name"></a>

#### name

> `readonly` **name**: `"WeatherServiceError"` = `"WeatherServiceError"`

##### Overrides

`Error.name`

***

<a id="weatherserviceerror-operation"></a>

#### operation

> `readonly` **operation**: `string`

***

<a id="weatherserviceerror-statuscode"></a>

#### statusCode

> `readonly` **statusCode**: `number`

***
