FIELD NOTES · ACCEPTANCE EXERCISES

A draft is not saved until the storage write succeeds

A long project brief can exceed browser storage or encounter a storage failure. If the interface displays saved before handling the write result, customers may leave and lose their work. Require a failure-path handover that preserves the current visible input and offers an honest recovery choice.

Source-bound fact

Browser storage writes can fail with QuotaExceededError; storage estimates are estimates, not durable-save proof. Official reference · Checked 17 October 2026.

Filled synthetic acceptance example

Synthetic teaching example, not a client case or a real-platform assessment. On narrow screens, scroll to read the complete table.

InputCheck basisExpected
Syntheticwrite succeedswrite result confirmedsaved candidate
InjectedQuotaExceededErrorvisible text remainsunsaved; offer approved recovery
Storage estimate says free spaceno write attempteddo not display saved

Supplier acceptance procedure

  1. Define where the draft lives, its privacy boundary and whether any server copy actually exists.
  2. Inject an isolated write failure without filling the user’s real browser storage or deleting existing data.
  3. Test the unsaved warning and an approved recovery/export path with synthetic text, then verify the restored content.

Interpret the output

The replay injects a writer error and keeps a synthetic string in memory. It proves that branch of the teaching code only, not device quota, browser eviction or a working backup. A completed write can still be lost later, so the product must disclose the promised durability boundary.

Explicit limits

No real browser storage is read, filled or cleared. This is not draft TTL, cloud backup, multi-device sync or a guarantee against data loss.

Replay the finite teaching model

Save both files in one folder and use Node22 or newer. JSON contains inputs and expected results. The script processes synthetic data only, with no network, credentials, payment or paid API calls. Passing is not evidence that a real integration passed acceptance.

Filled inputs and expectations · Inspectable teaching script

node check.mjs draft-storage-write-failure-recovery.json