My learning 0 of 20 lessons complete
Start lesson 1 →
Back to compare picker

Autosave recovery vs Autosave form vs Draft state vs Retry

Use autosave recovery when the latest autosave is failed, stale, conflicted, offline-only, expired, or recoverable from local storage and users need a path to preserve or restore the affected work.

Learn the decision

Match the interaction to the person's task

Use autosave recovery when the latest autosave is failed, stale, conflicted, offline-only, expired, or recoverable from local storage and users need a path to preserve or restore the affected work.

Autosave recovery

Use it when: Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work.

Make this state clear: Clean saved state with current server timestamp.

Observe the result: A user loses network while writing a long answer, sees it is saved on this device only, reconnects, retries the same value, and continues after the timestamp updates.

Study the full pattern →

Autosave form

Use it when: Users spend meaningful time entering form content or application progress.

Make this state clear: Initial state that explains progress will be saved automatically.

Observe the result: A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable.

Study the full pattern →

Draft state

Use it when: Users need to pause and resume unfinished work across sessions, devices, or routes.

Make this state clear: Published or active state with an available draft.

Observe the result: A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.

Study the full pattern →

Retry

Use it when: A load, save, submit, upload, export, sync, payment, or background request failed for a transient or uncertain reason.

Make this state clear: Retryable failed state with affected operation, object, and preserved request context.

Observe the result: A second failure increases the wait before the next attempt and then offers cached export, background notification, or support reference after attempts are exhausted.

Study the full pattern →

Practice the judgment: Imagine this situation: A form shows Saved even though the newest answer exists only in memory or local storage. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Autosave recoveryAutosave formDraft stateRetry
UI or UX UI + UX - Recovery surface for failed or uncertain background savesUI + UX - Background-saving form progressUI + UX - Unpublished object version lifecycleUI + UX - Scoped failed-operation retry control
UI guidance Keep the user's latest local value visible or copyable until recovery succeeds, and distinguish Retry save, Keep local copy, Restore last saved, Compare versions, Download copy, and Continue after recovery.Render a clear autosave message before users start, then keep a persistent status surface for Pending, Saving, Saved with timestamp, Failed, Retry, and unsafe-to-leave states.Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions.Place Retry next to the failed operation, object, or request summary, and name the exact action being retried such as Retry export or Retry payment authorization.
UX guidance Use autosave recovery when users need to preserve effort after background saving fails, stalls, conflicts, expires, or only stores a local copy.Use autosave when losing progress would hurt and background persistence is safer than making users hunt for a distant Save button.Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version.Help the person reach a clear task outcome.
Good UI A claim form says Household income answer failed to autosave at 10:42, keeps the typed answer visible, and offers Retry save, Copy answer, Restore last saved, and Continue after saved.A long application step says the application is saved on every change, shows Saving after an edited title blurs, then shows Draft saved just now with a timestamp.A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish.A report export card says Export CSV failed, keeps the saved filters visible, shows Attempt 1 of 3, and offers Retry export with request EXP-2048.
Bad UI The app clears the field after a failed autosave and offers only Reload page.A green Saved toast appears after one field saves, while another changed field is still pending or failed.A draft label is missing from the editor, so users publish or discard the wrong version.Retry creates duplicate records, payments, invitations, exports, or queued jobs.
Good UX A user loses network while writing a long answer, sees it is saved on this device only, reconnects, retries the same value, and continues after the timestamp updates.A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable.A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.A second failure increases the wait before the next attempt and then offers cached export, background notification, or support reference after attempts are exhausted.
Bad UX A stale saved timestamp hides that the latest answer failed after the timestamp.A password or permission field autosaves immediately and takes effect before the user reviewed the consequence.A user discards a shared draft and unknowingly removes another editor's unpublished changes.The app retries aggressively every second during an outage and makes the service harder to recover.
Best fit Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work.Users spend meaningful time entering form content or application progress.Users need to pause and resume unfinished work across sessions, devices, or routes.A load, save, submit, upload, export, sync, payment, or background request failed for a transient or uncertain reason.
Avoid when The work is a durable draft object with list-level resume, publish, and discard lifecycle.The form is short enough that a visible manual Save or Submit is clearer.The change is a small one-field edit that should be saved or canceled immediately.The error is caused by invalid user input and correction is required.
Required state Clean saved state with current server timestamp.Initial state that explains progress will be saved automatically.Published or active state with an available draft.Retryable failed state with affected operation, object, and preserved request context.
Accessibility burden Place recovery controls in reading order near the affected field, section, or submit action.Expose autosave status changes in a polite status region so assistive technology users hear Saving, Saved, and Failed states.Use headings and status regions so screen reader users know whether they are editing a draft or viewing the active version.Expose pending, failed again, cooldown, succeeded, exhausted, and non-retryable outcomes through status text or live regions.
Common misuse Leaving a green Saved label visible after a failed or stale autosave.Showing Saved when only an older change was saved.Using Saved to mean both saved draft and published content.Offering Retry for every error regardless of whether the user or system state can change.

Autosave recovery

UI or UX
UI + UX - Recovery surface for failed or uncertain background saves
UI guidance
Keep the user's latest local value visible or copyable until recovery succeeds, and distinguish Retry save, Keep local copy, Restore last saved, Compare versions, Download copy, and Continue after recovery.
UX guidance
Use autosave recovery when users need to preserve effort after background saving fails, stalls, conflicts, expires, or only stores a local copy.
Good UI
A claim form says Household income answer failed to autosave at 10:42, keeps the typed answer visible, and offers Retry save, Copy answer, Restore last saved, and Continue after saved.
Bad UI
The app clears the field after a failed autosave and offers only Reload page.
Good UX
A user loses network while writing a long answer, sees it is saved on this device only, reconnects, retries the same value, and continues after the timestamp updates.
Bad UX
A stale saved timestamp hides that the latest answer failed after the timestamp.
Best fit
Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work.
Avoid when
The work is a durable draft object with list-level resume, publish, and discard lifecycle.
Required state
Clean saved state with current server timestamp.
Accessibility burden
Place recovery controls in reading order near the affected field, section, or submit action.
Common misuse
Leaving a green Saved label visible after a failed or stale autosave.

Autosave form

UI or UX
UI + UX - Background-saving form progress
UI guidance
Render a clear autosave message before users start, then keep a persistent status surface for Pending, Saving, Saved with timestamp, Failed, Retry, and unsafe-to-leave states.
UX guidance
Use autosave when losing progress would hurt and background persistence is safer than making users hunt for a distant Save button.
Good UI
A long application step says the application is saved on every change, shows Saving after an edited title blurs, then shows Draft saved just now with a timestamp.
Bad UI
A green Saved toast appears after one field saves, while another changed field is still pending or failed.
Good UX
A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable.
Bad UX
A password or permission field autosaves immediately and takes effect before the user reviewed the consequence.
Best fit
Users spend meaningful time entering form content or application progress.
Avoid when
The form is short enough that a visible manual Save or Submit is clearer.
Required state
Initial state that explains progress will be saved automatically.
Accessibility burden
Expose autosave status changes in a polite status region so assistive technology users hear Saving, Saved, and Failed states.
Common misuse
Showing Saved when only an older change was saved.

Draft state

UI or UX
UI + UX - Unpublished object version lifecycle
UI guidance
Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions.
UX guidance
Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version.
Good UI
A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish.
Bad UI
A draft label is missing from the editor, so users publish or discard the wrong version.
Good UX
A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.
Bad UX
A user discards a shared draft and unknowingly removes another editor's unpublished changes.
Best fit
Users need to pause and resume unfinished work across sessions, devices, or routes.
Avoid when
The change is a small one-field edit that should be saved or canceled immediately.
Required state
Published or active state with an available draft.
Accessibility burden
Use headings and status regions so screen reader users know whether they are editing a draft or viewing the active version.
Common misuse
Using Saved to mean both saved draft and published content.

Retry

UI or UX
UI + UX - Scoped failed-operation retry control
UI guidance
Place Retry next to the failed operation, object, or request summary, and name the exact action being retried such as Retry export or Retry payment authorization.
UX guidance
Help the person reach a clear task outcome.
Good UI
A report export card says Export CSV failed, keeps the saved filters visible, shows Attempt 1 of 3, and offers Retry export with request EXP-2048.
Bad UI
Retry creates duplicate records, payments, invitations, exports, or queued jobs.
Good UX
A second failure increases the wait before the next attempt and then offers cached export, background notification, or support reference after attempts are exhausted.
Bad UX
The app retries aggressively every second during an outage and makes the service harder to recover.
Best fit
A load, save, submit, upload, export, sync, payment, or background request failed for a transient or uncertain reason.
Avoid when
The error is caused by invalid user input and correction is required.
Required state
Retryable failed state with affected operation, object, and preserved request context.
Accessibility burden
Expose pending, failed again, cooldown, succeeded, exhausted, and non-retryable outcomes through status text or live regions.
Common misuse
Offering Retry for every error regardless of whether the user or system state can change.
Decision rules
  • Use autosave recovery when the latest autosave is failed, stale, conflicted, offline-only, expired, or recoverable from local storage and users need a path to preserve or restore the affected work.
  • Use autosave form when designing the ordinary background-save behavior before failure, including pending, saving, saved, failed, timestamp, and final-submit states.
  • Use draft state when the work exists as a durable unpublished object with resume, compare, publish, discard, and list discovery across sessions.
  • Use retry when the task is simply repeating one failed request with the same scope; use autosave recovery when typed work, local copies, stale saved versions, or partial field ownership must be preserved.
  • Autosave recovery should name the affected field, section, local copy, last server-saved version, failed request time, and safest next action.
  • Do not claim Saved when only an older version is on the server or a newer value is local-only.
  • Provide choices that match the evidence: Retry save, Keep local copy, Restore last saved, Compare versions, Download copy, or Continue after recovery.
  • If recovery reveals two competing versions, hand off to conflict state or conflict resolution instead of silently overwriting either version.
  • If the failure is caused by session expiry, combine autosave recovery with reauthentication return rather than dropping users on a signed-out page.
  • After recovery succeeds, clear the failed-save state, update the timestamp, and let users continue or submit without duplicate saves.
Inspect live examples
Failure modes
  • A form shows Saved even though the newest answer exists only in memory or local storage.
  • A failed autosave toast disappears and leaves no persistent route to retry or copy the answer.
  • Retry sends an empty or stale value because the local edit was cleared before the request.
  • A conflict between local and server versions is resolved by last-write-wins with no comparison.
  • Session expiry turns a recoverable local draft into a generic sign-in screen with no return target.
  • Submit remains enabled while the latest autosave is failed, causing duplicate or partial submissions.

Saved items