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.

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 Show a persistent recovery surface when autosave did not protect the latest work, naming the affected field or section, last server-saved time, local copy status, and available recovery actions.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.Use retry when a specific operation likely failed for a transient reason and the same operation can be attempted again without losing user context or duplicating side effects.
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 A small toast says Could not save and disappears while the form still shows a green Saved label.A form removes the Save button and shows no save status, leaving users unsure whether typed answers are safe.An editor opens directly into draft text but the header only says Saved, so users cannot tell whether viewers see the changes.A generic Try again button appears after every error, including validation and permission failures users cannot fix by repeating the request.
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 user retries the same export after a network timeout, sees the attempt change to sending, and then returns to the recovered download state without re-entering filters.
Bad UX A user submits after seeing Saved, but the newest section was failed and never reached the server.A user leaves after seeing an old saved message, but the newest field was never persisted.A user closes an editor after seeing Saved, later discovers the page was never published, and cannot find the draft in the content list.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 create or edit objects that should not become visible, active, submitted, or externally effective until a later action.A load, save, submit, upload, export, sync, payment, or background request failed for a transient or uncertain reason.
Avoid when The product does not use autosave or local draft persistence.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 no draft.Retryable failed state with affected operation, object, and preserved request context.
Accessibility burden Announce failed, local-only, retrying, recovered, and conflict states through status text without repeating every save attempt.Expose autosave status changes in a polite status region so assistive technology users hear Saving, Saved, and Failed states.Expose Draft, Published, Unpublished changes, Locked, and Unavailable as text in the page title area and list rows, not only by color or icon.Use an action label that names the operation, not only an icon or generic phrase.
Common misuse Leaving a green Saved label visible after a failed or stale autosave.Removing the Save button while providing no autosave status.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
Show a persistent recovery surface when autosave did not protect the latest work, naming the affected field or section, last server-saved time, local copy status, and available recovery actions.
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
A small toast says Could not save and disappears while the form still shows a green Saved label.
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 user submits after seeing Saved, but the newest section was failed and never reached the server.
Best fit
Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work.
Avoid when
The product does not use autosave or local draft persistence.
Required state
Clean saved state with current server timestamp.
Accessibility burden
Announce failed, local-only, retrying, recovered, and conflict states through status text without repeating every save attempt.
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 form removes the Save button and shows no save status, leaving users unsure whether typed answers are safe.
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 user leaves after seeing an old saved message, but the newest field was never persisted.
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
Removing the Save button while providing no autosave status.

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
An editor opens directly into draft text but the header only says Saved, so users cannot tell whether viewers see the changes.
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 closes an editor after seeing Saved, later discovers the page was never published, and cannot find the draft in the content list.
Best fit
Users create or edit objects that should not become visible, active, submitted, or externally effective until a later action.
Avoid when
The change is a small one-field edit that should be saved or canceled immediately.
Required state
Published or active state with no draft.
Accessibility burden
Expose Draft, Published, Unpublished changes, Locked, and Unavailable as text in the page title area and list rows, not only by color or icon.
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
Use retry when a specific operation likely failed for a transient reason and the same operation can be attempted again without losing user context or duplicating side effects.
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
A generic Try again button appears after every error, including validation and permission failures users cannot fix by repeating the request.
Good UX
A user retries the same export after a network timeout, sees the attempt change to sending, and then returns to the recovered download state without re-entering filters.
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
Use an action label that names the operation, not only an icon or generic phrase.
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.