# Input-error code `'invalid-input'`

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

A member of [`InputErrorCode`](../api/InputErrorCode.md) · stable · since 2.0.0

A value or combination the member refuses, e.g. a zero [`PoseInput.scale`](../api/PoseInput.md) component.

## What to do

Read the error's `path`, `expected` and `received` and change that value: the member's page lists what it accepts (common cases: a [`PoseInput.scale`](../api/PoseInput.md) component of 0, [`CameraLimits`](../api/CameraLimits.md) whose min is above max, [`PlayOptions.loop`](../api/PlayOptions.loop.md) that is not `true` or a whole number from 1, a relative [`SceneModelOptions.assetBaseUrl`](../api/SceneModelOptions.assetBaseUrl.md)).

```ts
await session.node(nodeId).set({ visible: false }); // hide with visible, never a 0 scale
```

## Where the declaration names it

- [`BootOptions.el`](../api/BootOptions.el.md): `el` must be able to host a shadow root (the DOM standard's `attachShadow` list: `div`, `section`, `span` and the like, or an autonomous custom element), carry none the runtime did not attach, and be in the document at the call (`isConnected`; one the page removes while the session starts is HoloBootError 'disconnected'); otherwise [`boot`](../api/boot.md) rejects HoloInputError ('invalid-input', path 'el') at…
- [`CameraLimits.minAzimuthDeg`](../api/CameraLimits.minAzimuthDeg.md): The merged ends must satisfy 0 ≤ max − min ≤ 360, else the call rejects HoloInputError('invalid-input'): 150 to 210 lies behind the product, equal ends lock the azimuth, 360 apart frees it.
- [`CameraLimits.minPolarDeg`](../api/CameraLimits.minPolarDeg.md): The merged min is at most the merged max, else the call rejects HoloInputError('invalid-input').
- [`CaptureSpec.format`](../api/CaptureSpec.format.md): A jpeg has no alpha: a pixel left transparent (`'scene'` over a 'transparent' stage) is black, as 1.x encoded it, and `'render'` with `background: 'transparent'` rejects HoloInputError ('invalid-input', path 'format').
- [`DragOptions.commit`](../api/DragOptions.commit.md): A collection item has no scene-model pose, so a 'runtime' registration matches scene-model parts only, and [`input.drag`](../api/Input.drag.md) throws HoloInputError('invalid-input') when its query names a `collection` or `key` without 'app': an item is dragged with 'app' and placed by [`Collection.set`](../api/Collection.set.md).
- [`HoloInputError`](../api/HoloInputError.md): It also records the problem 'invalid-input'.
- [`IModelNode.scale`](../api/IModelNode.scale.md): A stored 0 is drawn as given (a flat node), as 1.x draws it, so an old save still loads, and [`validate('configurator', doc)`](../api/validate.md) passes it; an [`applyPatch`](../api/Writer.applyPatch.md) operation on `/model/node/{id}/scale` with a 0 or non-finite component rejects HoloInputError 'invalid-input', as [`PoseInput.scale`](../api/PoseInput.md) does.
- [`JsonPatchOp`](../api/JsonPatchOp.md): The feed's entries, `inverse`s and dry-run patches also name these, which [`applyPatch`](../api/Writer.applyPatch.md) refuses at the call (a 'test' too) with HoloInputError 'invalid-input' whose `fix` names the member that writes them: - `/look/collections/{name}/items/{key}` (an item) and `/look/collections/{name}/order` (its item keys, in order): [`collection(name).set()`](../api/Collection.set.md); - `/look/collections/{name}/stage` (a collection's…
- [`MaterialSpec.variant`](../api/MaterialSpec.variant.md): Only in a rule's material over a GLB's mesh: a whole material ([`materials.create`](../api/Materials.create.md), [`apply`](../api/Writer.apply.md)'s `materials`) has no GLB under it and rejects it (HoloInputError 'invalid-input').
- [`Outline2D`](../api/Outline2D.md): The first entry is a point or an `arc`, which then starts the outline at its start point; a `quad` or `cubic` first is invalid input (HoloInputError 'invalid-input', spec section 3.4).
- [`Placement.parent`](../api/Placement.parent.md): A [`Collection.load`](../api/Collection.load.md)'s parent must not lie in the subtree of the item it replaces (a part hung under that item): when it does at the call, the load rejects HoloInputError('invalid-input') at the call; when it comes to lie there only by the load's commit point, nothing commits, as for an abort after the resolve, the old item stays and the load records 'invalid-input'.
- [`PlayOptions.loop`](../api/PlayOptions.loop.md): true (open-ended) or a repeat count: a whole number from 1, the plays in all, after which the clip ends (anything else rejects HoloInputError('invalid-input')).
- [`PlayOptions.toggle`](../api/PlayOptions.toggle.md): With `reverse: true` the call rejects HoloInputError('invalid-input'), because the two name different directions.
- [`Problem.didYouMean`](../api/Problem.didYouMean.md): authored names for 'target-unmatched'; for 'invalid-input', the thrown HoloInputError's `didYouMean` (spec section 8.1).
- [`SceneModelOptions.assetBaseUrl`](../api/SceneModelOptions.assetBaseUrl.md): Absolute HTTP(S) directory for the model's GLB, try-on rig (`tryOnUrl`, `tryOnCandidateUrl`), texture and HDR URLs; any other value rejects HoloInputError('invalid-input') at the call.
- [`Session.export`](../api/Session.export.md): `extra` (since 2.0.0, additive): `{ signal }` as [`capture`](../api/Session.capture.md), [`idle`](../api/Session.idle.md) and [`applyDocument`](../api/Session.applyDocument.md) take it, honoured as `options.signal`; a signal in both places rejects 'invalid-input' (pass it once), and another key 'unknown-field'.
- [`Shading.set`](../api/Shading.set.md): A wrong name or value throws HoloInputError and records 'invalid-input'.
- [`SkinBinding`](../api/SkinBinding.md): A [`Collection.set`](../api/Collection.set.md) that changes the item in place keeps the binding while its vertex count is unchanged; a new count drops it and records 'invalid-input' at the item's path.
- [`Writer.applyPatch`](../api/Writer.applyPatch.md): Errors: rejects HoloInputError on a bad path (a collection, stage-order or named-material path among them: the feed names those, another member writes them, and `fix` says which; see [`JsonPatchOp`](../api/JsonPatchOp.md)), or 'invalid-input' on a node `scale` with a 0 or non-finite component, or a non-finite number anywhere in a value (spec section 3.4); or 'unknown-field' on a node field path the stored format doesn't…
- [`testing.createFakeSession`](../api/testing.createFakeSession.md): Errors: the options are checked at the call, nested ones included (`profile`, each `models` entry with its nodes, clips and load, each `assets` entry): a field the declaration doesn't have throws HoloInputError 'unknown-field' with `didYouMean`, a malformed value (a node without a string `name`, a `parent` naming no entry or a name two entries share, a `tier` or AR mode the profile doesn't know)…
- [`testing.fakeModelFromGlb`](../api/testing.fakeModelFromGlb.md): Errors: throws HoloInputError ('invalid-input', path 'glb') when the bytes are no glTF 2.0 binary.
- [`testing.manifestFromGlb`](../api/testing.manifestFromGlb.md): Errors: rejects HoloInputError ('invalid-input', path 'glb') when the bytes are no glTF 2.0 binary (no 'glTF' magic, another version, no JSON chunk).

The set is open: handle a code you don't know (`'other'`).
