# Outcome `'refused'`

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

it had no effect (see [`Reason`](../api/Reason.md)).

## Where the declaration names it

- [`AttachReport`](../api/AttachReport.md): `attached: false` comes with `outcome: 'refused'` and a `reason` of 'no-candidate', 'occupied', 'rejected' or 'not-loaded': the first that applies, in the order of spec section 6.12, A2.
- [`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).
- [`CommitOptions.expectRevision`](../api/CommitOptions.expectRevision.md): A mismatch refuses the write ('refused', reason 'conflict'); nothing runs.
- [`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'.
- [`Report`](../api/Report.md): Narrow on `outcome` before reading `reason`, `supersededBy` or `patch`: - 'refused' and 'rolled-back' carry `reason`; - 'superseded' carries `supersededBy`; - 'dry-run' carries `patch` (RFC 6902 over [`SessionState`](../api/SessionState.md): what the write alone would have changed; a dry run runs no [`beforeCommit`](../api/Session.beforeCommit.md) function).
- [`Session.redo`](../api/Session.redo.md): As `undo`: in the write queue; ends an open group at its call; always moves the history pointer, except on 'rolled-back' / 'internal-error'; 'committed', or 'refused' with reason 'empty'.
- [`Session.transaction`](../api/Session.transaction.md): Outcome: resolves at the commit point ('committed', with `value`), or with 'rolled-back', 'superseded', 'refused' or 'dry-run'; an internal failure applying a staged write rolls it back with reason 'internal-error' (spec section 6.4).
- [`Session.undo`](../api/Session.undo.md): Outcome: 'committed', or 'refused' with reason 'empty'.

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