How to Design APP User Flows: Normal, Error, and Interruption-Recovery Paths

How to Design APP User Flows: Normal, Error, and Interruption-Recovery Paths

Author: JVDS Design Studio Reading time: about 7 min

Real users do not move from the first screen to success exactly as a prototype does. They lose connectivity, switch to the background, deny permissions, let sessions expire, or enter directly from a notification. Flow design must handle every branch, not only the easiest path.

Real users do not move from the first screen to success exactly as a prototype does. They lose connectivity, switch to the background, deny permissions, let sessions expire, or enter directly from a notification. Flow design must handle every branch, not only the easiest path.

01 Users Do Not Follow a Straight Line Through the Design

Prototypes usually show the smoothest path: open the APP, log in, select, submit, succeed. Real use is full of branches: the network drops, a verification code expires, permission is denied, the user switches to WeChat to check information, the operating system kills the process, or payment returns an uncertain result. Designing only normal completion leaves the most failure-prone decisions to developers in the moment.

An APP user flow should be modeled as states and events, not arrows between screens. A screen explains what users see; the flow must also explain what the system knows, what changes, and where users resume after failure.

02 Draw Four Lanes, Not Only Screens

LaneWhat to RecordExample
User ActionTap, enter, go back, switch, authorize, or cancelUser taps Submit, then switches to messages to view a verification code
Interface FeedbackLoading, messages, actionable state, and next stepButton enters Processing; users may leave but must not resubmit
System StateLocal draft, server record, login state, and payment stateOrder exists, but the payment result is pending confirmation
External EventNetwork, permissions, third party, system interruption, and deep linkCamera permission denied; third-party payment callback delayed

Four lanes reveal problems such as the interface showing feedback without saved system state or users returning without a destination. They also let product, design, and development teams confirm boundaries in one diagram.

How to Design APP User Flows: Normal, Error, and Interruption-Recovery Paths

03 Check at Least Eight States for Every Critical Step

StateDesign Question
InitialWhy did users arrive here, and where do defaults come from?
EmptyIs no data normal, not yet created, or a load failure?
LoadingCan users cancel or leave? Does it need a skeleton, progress, or background task?
SuccessWhat proves success, and is the next step clear?
FailureAt which layer did failure occur, and can users repair or retry?
Offline or Weak NetworkWhat remains viewable? Are actions queued, blocked, or saved as drafts?
Insufficient PermissionIs this a device, account, role, or state restriction?
Interruption RecoveryWhere does the task resume after an APP restart, expired login, or payment return?

Not every screen needs eight high-fidelity designs, but critical flows need state specifications. Record simple states in component notes; draw separate recovery paths for funds, identity, health, or data submission.

04 Design Interruption Before Designing "Back"

Mobile interruptions are normal. Users answer calls, switch APPs, lock the screen, or copy information, and the system may reclaim the process. Sending users to Home after every recovery loses both their input and trust.

  • Short forms can preserve unsubmitted content locally; assess encryption, expiration, and shared-device risk for sensitive information.
  • For multistep tasks, record confirmed steps and draft versions, then clearly say "Saved through Step 3" on recovery.
  • After reauthentication for an expired session, return users to the original task instead of always sending them Home.
  • On return from third-party payment, maps, or identity verification, query the actual state before choosing success, pending, or retry.
  • If a deep link opens a child page without prerequisites, complete them and return to the target instead of invalidating the link.
  • System Back and in-page Back need consistent rules; confirm only when leaving would lose data.

How to Design APP User Flows: Normal, Error, and Interruption-Recovery Paths

05 Request Login and Permissions When They Become Necessary

Asking for phone number, location, photos, camera, and notifications immediately after launch drives away users who have not experienced value. Distinguish permissions needed to browse, permissions required for a task, and optional permissions.

RequestBetter TriggerPath After Denial
Login or RegistrationBefore saving, syncing, transacting, or viewing personal dataAllow browsing and explain what login enables
CameraWhen users choose to take a photo or scanOffer selection from photos or manual entry
LocationWhen users choose nearby services or need a delivery addressAllow manual city and address selection
NotificationsAfter users complete a valuable task, with an explanation of remindersKeep an enable option in Settings without repeated prompts
ContactsIn a clear invitation or matching scenarioSupport copying a link or manual entry

Permission copy should not say only "to provide better service." State the specific purpose, whether use is continuous, and how users can complete the task without permission.

06 An Order Flow Needs More Than "Submission Successful"

  • The user confirms products and address while the system checks inventory, price, and delivery coverage.
  • After creation, the order has a unique state; even without completed payment, users can find it in the order list.
  • Prevent repeated taps before opening payment and save the return destination.
  • On return from the payment channel, show "Confirming" first; server results determine success or failure.
  • If the state is temporarily unknown, users may leave and continue checking on the order page instead of paying again.
  • Give separate recovery actions for inventory changes, expired discounts, unsupported addresses, and other failures.
  • After success, state the order number, downstream steps, and notification method rather than showing only a celebration illustration.

How to Design APP User Flows: Normal, Error, and Interruption-Recovery Paths

07 Give Developers Flow Specifications, Not Only a Prototype Link

Specification ItemExample
Entry PointsHome, messages, shared links, system notifications, and historical tasks
PreconditionsLogin, role, device permission, network, and profile completeness
Critical DataWhat stays local, what is submitted to the server, and when an ID is created
States and EventsLoading, success, failure, timeout, cancellation, and external callback
Return RulesSystem Back, page Back, close, deep links, and reentry
Error RecoveryRetry, edit, save draft, contact support, or transfer to a person
Measurement PointsFlow start, step completion, error type, abandonment, and final success

08 Run at Least These Interruption Tests Before Launch

  • Disconnect during submission, then reconnect; confirm no duplicate creation.
  • Kill the process halfway through entry, then reopen; confirm draft and step position.
  • Send a verification code, background the APP until expiry, then confirm the error and resend path.
  • Deny a device permission, enable it in system settings, and confirm the page detects the change.
  • Complete payment without returning to the APP, reopen from the home screen, and confirm the order state.
  • Open an expired object from an old notification or shared link and confirm the explanation and alternate entry.
  • Disable the account or change its role on another device and confirm the open screen revokes capabilities promptly.

Frequently Asked Questions

Should Product or Design Own the Flowchart?

Product usually owns business rules and success criteria; design owns user actions, interface feedback, and recovery; development contributes system states and technical constraints. Complex flows should share one maintained artifact instead of separate diagrams.

Does Every Error State Need a Separate High-Fidelity Design?

No. High-risk states, major business differences, and new components need complete designs. Reusable loading, empty, and network errors can cite component guidelines, but copy, triggers, and actions still need definition.

Is a Shorter Flow Always Better?

Not necessarily. Remove meaningless steps, but deleting confirmations, explanations, and risk warnings increases error cost. Evaluate task completion, comprehension, recovery, and trust—not just screen count.

09 Let Users Return to the Task from Any Branch

A complete APP flow is not one attractive success path; it is a recoverable state network. Users may pause, make mistakes, deny access, or go offline, while the system can still explain what happened, whether data was saved, and what to do next.

ServiceView
UI/UX Design ServicesView Service Details
Project InquiryContact JVDS Design Studio
Design and Website Development ArticlesRead More Articles
Link copied

From Idea to Launch, We Build It Together

Building useful, scalable digital products around user experience

Tell Us About Your Project