# Outcome `'dry-run'`

> 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 ran and reported, then was undone by design.

## Where the declaration names it

- [`CommitOptions.dryRun`](../api/CommitOptions.dryRun.md): Runs and reports, then rolls back by design ('dry-run').
- [`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).
- [`ReportFields.changed`](../api/ReportFields.changed.md): True when this operation's commit changed state ('dry-run': would have changed it).
- [`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).

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