Use when a UI applies a mutation before the server confirms and reconciliation goes wrong — an optimistic change that never rolls back on failure, a created row that shows up twice (temp entry plus refetched real one), an item that flickers or reverts when the server response races a background refetch, a temp client id never swapped for the server id (a later edit/delete hits the wrong record or orphans the temp row), concurrent mutations landing out of order, or a `useOptimistic`/`optimisticData` value that snaps back with nothing persisted. Optimistic-apply/rollback/reconcile lifecycle scope; for form double-submit races see js-form-validation-contracts, announcing rol…