# Reason `'disposed'`

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

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

a new write through a disposed collection or naming one as its `owner`, or through a part that reads `exists: false` (never a [`node()`](../api/Writer.node.md) handle); nothing ran, `matched` is 0 without 'target-unmatched', and `problems` holds 'handle-disposed' (spec section 3.4).

## Where the declaration names it

- [`Collection.disposed`](../api/Collection.disposed.md): True once disposed: writes then do nothing, record 'handle-disposed' and resolve 'refused' with reason 'disposed'; `load()` starts nothing and rejects AbortError (spec section 3.4).
- [`Material.dispose`](../api/Material.dispose.md): A rule or item that wears it keeps `{ materialId }` in its state, so an undo still moves; a new write that wears it resolves 'refused' with reason 'disposed' (spec section 3.4).
- [`Part.exists`](../api/Part.exists.md): A [`node()`](../api/Writer.node.md) handle's writes stay rules on its address, pending while a queued scene write loads the node ([`Writer.node`](../api/Writer.node.md)); through any other such part, writes do nothing, record 'handle-disposed' and resolve 'refused' with reason 'disposed'.
- [`ReportFields.matched`](../api/ReportFields.matched.md): A write refused 'disposed' reports 0 and records 'handle-disposed' instead.

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