# Outcome `'superseded'`

> 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

a newer operation replaced it before its commit point; nothing of it remains.

## Where the declaration names it

- [`CommitOptions.supersede`](../api/CommitOptions.supersede.md): While a transaction is open: roll it back (it resolves 'superseded'); the writes queued behind it apply in call order, then this one, which supersedes an adjacent replacing write to its target (spec section 6.1, O2c).
- [`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.idle`](../api/Session.idle.md): Each of these settles exactly when its write has landed: - one write: its own Promise, at its commit point, its loads included; a camera move, a clip or a `durationMs` tween resolves when it finishes ('superseded': a newer write won); - the newest of a burst (a slider, fast swatch clicks): abort the older write's `signal` when a new one starts, and await the newest; never debounce to let the…
- [`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).
- [`Writer.setSceneModel`](../api/Writer.setSceneModel.md): Two pending calls coalesce only when adjacent in the queue: the older resolves 'superseded' and only the newer one's options apply.

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