# Problem code `'not-storable'`

> 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 [`ProblemCode`](../api/ProblemCode.md) · stable · since 2.0.0

Reserved: a value the stored format can't hold is an [`Issue`](../api/Issue.md) of [`validate`](../api/validate.md) and an `unstorable` entry of [`materialNodeFromSpec`](../api/materialNodeFromSpec.md) ([`IssueCode`](../api/IssueCode.md) 'not-storable'), never a Problem in 2.0.0; a branch on it as a Problem never runs.

## What to do

Leave the value out of what you save: the `unstorable` list of [`materialNodeFromSpec(spec)`](../api/materialNodeFromSpec.md) names the spec paths the stored format can't hold (scalar colours, placement, `labs`, images); check the document you save with [`validate('configurator', doc)`](../api/validate.md).

```ts
const result = validate('configurator', doc);
if (!result.ok) console.warn(result.errors.map((e) => `${e.path}: ${e.message}`));
```

## Where the declaration names it

- [`validate`](../api/validate.md): So a stored document that loads passes unless it holds `space: 'parent'` ('space-not-storable') or a value the stored format can't hold ('not-storable'); a stored zero scale passes.

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