# `Issue`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

Interface · `import type { Issue } from '@holostep-configurators/runtime-client/contract';` · stable · since 2.0.0 · section 17. Assets: describe, manifest, validation

One failed check at a path: what [`validate`](validate.md) and [`checkAsset`](checkAsset.md) return, and what a HoloInputError carries.

## Members

| Member | Kind | Summary |
| --- | --- | --- |
| <a id="code"></a>[`code`](Issue.code.md) | property | What failed, e.g. 'unknown-field'; see [`IssueCode`](IssueCode.md). |
| <a id="path"></a>[`path`](Issue.path.md) | property | The JSON path or argument it is about. |
| <a id="expected"></a>[`expected`](Issue.expected.md) | property | What was needed, in words or a type. |
| <a id="received"></a>[`received`](Issue.received.md) | property | What was found. |
| <a id="message"></a>[`message`](Issue.message.md) | property | At most 200 characters. |
| <a id="didyoumean"></a>[`didYouMean?`](Issue.didYouMean.md) | property | Up to 3 close matches. |
| <a id="docs"></a>[`docs`](Issue.docs.md) | property | URL of this code's page for this contract version. |

## Declaration

```ts
export interface Issue {
  readonly code: IssueCode;
  readonly path: string;
  readonly expected: string;
  readonly received: string;
  readonly message: string;
  readonly didYouMean?: readonly string[];
  readonly docs: string;
}
```

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `Issue` names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | not recorded: no ledger row names this member or its owner |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |
