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

Session timeout vs Session timeout warning vs Sign in vs Login vs Permission denied state vs Autosave recovery

Session timeout handles the already-expired authenticated-session state. Session timeout warning intervenes before expiry, sign in starts or resumes authentication, permission denied handles authorization after authentication, and autosave recovery protects uncertain saved work.

Learn the decision

Match the interaction to the person's task

Session timeout handles the already-expired authenticated-session state. Session timeout warning intervenes before expiry, sign in starts or resumes authentication, permission denied handles authorization after authentication, and autosave recovery protects uncertain saved work.

Session timeout

Use it when: An authenticated session has expired or been terminated while the user was on a protected task.

Make this state clear: Expired session state with private content hidden.

Observe the result: A user returns from a break, sees that their session ended, signs in again, and lands back on the same saved claim step with private fields restored only after authentication.

Study the full pattern →

Session timeout warning

Use it when: An authenticated session can expire because of inactivity, overall lifetime, assurance policy, or reauthentication requirement.

Make this state clear: Early idle warning with remaining time and current save state.

Observe the result: A user pauses while gathering documents, sees the remaining time, extends the session once, then saves the draft before policy requires reauthentication.

Study the full pattern →

Sign in

Use it when: Users need to access an existing account or protected destination.

Make this state clear: Initial sign-in state with service or destination context.

Observe the result: A user opens a private document link, signs in with a saved passkey, and lands back on the same document with focus near the access confirmation.

Study the full pattern →

Login

Use it when: Users have submitted credentials or authenticator output and need a safe verification result.

Make this state clear: Ready-to-submit login state with chosen identifier and authenticator route.

Observe the result: A user mistypes the password twice, sees remaining attempts and a neutral account-details error, uses a passkey instead, and reaches the intended workspace with retry warnings cleared.

Study the full pattern →

Permission denied state

Use it when: A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.

Make this state clear: Whole-object access denied state.

Observe the result: A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.

Study the full pattern →

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 →

Practice the judgment: Imagine this situation: A timed-out form remains visible with Submit enabled, so the next action fails or duplicates work against an expired session. 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 Session timeoutSession timeout warningSign inLoginPermission denied stateAutosave recovery
UI or UX UI + UX - Expired authenticated-session state and safe return-to-task recoveryUI + UX - Authenticated-session expiry and reauthentication boundary warningUI + UX - Returning-account authentication and session start flowUI + UX - Credential-verification attempt lifecycle and login outcome handlingUI + UX - Authorization and access-boundary stateUI + UX - Recovery surface for failed or uncertain background saves
UI guidance Show session timeout after the authenticated session has ended, with private content hidden, a clear reason such as inactivity or policy expiry, the last safe activity reference, and a primary sign-in or reauthentication path.Show a visible countdown or clear expiry time before inactivity, absolute session, or reauthentication limits can interrupt work; place the warning near the current task or as a focused dialog when immediate action is required.Render sign in as a focused authentication surface with a clear service or destination name, account identifier field, current-password or passkey path, password-manager-friendly attributes, recovery routes, create-account route, and neutral error area.Render login as the outcome-sensitive credential verification state: pending verification, neutral failure, remaining attempts or wait time when policy allows, throttling or lockout state, unlock or recovery route, and successful session-created confirmation.Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.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 Treat the timeout state as a security and continuity boundary: terminate authenticated actions, hide sensitive content, preserve allowed work references, and return users only after a fresh session is established.Use session timeout warning to balance security, privacy, accessibility, and continuity when an authenticated session is about to expire or require reauthentication.Use sign in when users are returning to an existing account, protected resource, invitation, draft, checkout, or workspace and need to prove control of an authenticator.Use login when users have already chosen an authentication route and submitted credentials or an authenticator output, and the product must explain the verification result safely.Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.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 benefits form replaces private answers with Session ended after inactivity, shows reference SES-2048, says the draft was saved at 10:42, and offers Sign in to continue plus Start again.A benefits form shows Your session will end in 2 minutes, says the draft is saved, and offers Stay signed in, Save and sign out, and Sign out.A sign-in page names the workspace, shows email or username, password with current-password autocomplete, passkey option, forgot-password link, create-account link, and a destination reminder such as Continue to Q2 budget review.After a failed login, the page keeps the email address, clears the password, shows Check your details and try again, gives 2 attempts remaining, and keeps forgot password and use passkey routes available.A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.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 modal says Timeout while the private page remains readable behind it.The countdown shows time remaining after the server has already expired the session.A failed sign-in says This email exists but the password is wrong, exposing account status.Account enumeration through differentiated login outcomes.A denial page says Something went wrong and shows Retry even though the user lacks a required group.The app clears the field after a failed autosave and offers only Reload page.
Good UX A user returns from a break, sees that their session ended, signs in again, and lands back on the same saved claim step with private fields restored only after authentication.A user pauses while gathering documents, sees the remaining time, extends the session once, then saves the draft before policy requires reauthentication.A user opens a private document link, signs in with a saved passkey, and lands back on the same document with focus near the access confirmation.A user mistypes the password twice, sees remaining attempts and a neutral account-details error, uses a passkey instead, and reaches the intended workspace with retry warnings cleared.A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.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 comes back to a timed-out payment form, clicks Submit, and gets repeated server errors because expired controls stayed enabled.A user returns from a phone call to find the form gone and a generic access denied page.A user signs in from checkout and lands on a generic account dashboard, losing the cart and payment context.Account enumeration through differentiated login outcomes.Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.A stale saved timestamp hides that the latest answer failed after the timestamp.
Best fit An authenticated session has expired or been terminated while the user was on a protected task.An authenticated session can expire because of inactivity, overall lifetime, assurance policy, or reauthentication requirement.Users need to access an existing account or protected destination.Users have submitted credentials or authenticator output and need a safe verification result.A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.Autosave failed, stalled, expired, or became uncertain while users still have meaningful local work.
Avoid when The session is still active and users can act before expiry; use session timeout warning.The user lacks authorization while still signed in.The user is creating a new account, choosing a new password, or verifying a new contact method.The problem is choosing an authentication method or explaining why authentication is required before credentials are submitted.The operation failed for network, server, validation, data, or timeout reasons after permission was granted.The work is a durable draft object with list-level resume, publish, and discard lifecycle.
Required state Expired session state with private content hidden.Early idle warning with remaining time and current save state.Initial sign-in state with service or destination context.Ready-to-submit login state with chosen identifier and authenticator route.Whole-object access denied state.Clean saved state with current server timestamp.
Accessibility burden Move focus to the timeout heading when protected content is replaced, and use text that says the session ended rather than relying on a lock icon.Warn users early enough to respond and avoid relying on a rapidly changing countdown as the only information.Use explicit labels for identifier, password, passkey, SSO, and one-time-code controls rather than placeholder-only prompts.Keep retry, recovery, unlock, support, and accessible challenge alternatives reachable by keyboard.Move focus to the permission message when it replaces page content or blocks a workflow.Place recovery controls in reading order near the affected field, section, or submit action.
Common misuse Leaving the private page readable behind a timeout modal.Using a client-only timer that disagrees with the server session.Using account-specific error messages that reveal whether an identifier exists.Returning different messages for unknown account, wrong password, disabled account, or locked account.Treating authorization denial as a generic retryable error.Leaving a green Saved label visible after a failed or stale autosave.

Session timeout

UI or UX
UI + UX - Expired authenticated-session state and safe return-to-task recovery
UI guidance
Show session timeout after the authenticated session has ended, with private content hidden, a clear reason such as inactivity or policy expiry, the last safe activity reference, and a primary sign-in or reauthentication path.
UX guidance
Treat the timeout state as a security and continuity boundary: terminate authenticated actions, hide sensitive content, preserve allowed work references, and return users only after a fresh session is established.
Good UI
A benefits form replaces private answers with Session ended after inactivity, shows reference SES-2048, says the draft was saved at 10:42, and offers Sign in to continue plus Start again.
Bad UI
A modal says Timeout while the private page remains readable behind it.
Good UX
A user returns from a break, sees that their session ended, signs in again, and lands back on the same saved claim step with private fields restored only after authentication.
Bad UX
A user comes back to a timed-out payment form, clicks Submit, and gets repeated server errors because expired controls stayed enabled.
Best fit
An authenticated session has expired or been terminated while the user was on a protected task.
Avoid when
The session is still active and users can act before expiry; use session timeout warning.
Required state
Expired session state with private content hidden.
Accessibility burden
Move focus to the timeout heading when protected content is replaced, and use text that says the session ended rather than relying on a lock icon.
Common misuse
Leaving the private page readable behind a timeout modal.

Session timeout warning

UI or UX
UI + UX - Authenticated-session expiry and reauthentication boundary warning
UI guidance
Show a visible countdown or clear expiry time before inactivity, absolute session, or reauthentication limits can interrupt work; place the warning near the current task or as a focused dialog when immediate action is required.
UX guidance
Use session timeout warning to balance security, privacy, accessibility, and continuity when an authenticated session is about to expire or require reauthentication.
Good UI
A benefits form shows Your session will end in 2 minutes, says the draft is saved, and offers Stay signed in, Save and sign out, and Sign out.
Bad UI
The countdown shows time remaining after the server has already expired the session.
Good UX
A user pauses while gathering documents, sees the remaining time, extends the session once, then saves the draft before policy requires reauthentication.
Bad UX
A user returns from a phone call to find the form gone and a generic access denied page.
Best fit
An authenticated session can expire because of inactivity, overall lifetime, assurance policy, or reauthentication requirement.
Avoid when
The user lacks authorization while still signed in.
Required state
Early idle warning with remaining time and current save state.
Accessibility burden
Warn users early enough to respond and avoid relying on a rapidly changing countdown as the only information.
Common misuse
Using a client-only timer that disagrees with the server session.

Sign in

UI or UX
UI + UX - Returning-account authentication and session start flow
UI guidance
Render sign in as a focused authentication surface with a clear service or destination name, account identifier field, current-password or passkey path, password-manager-friendly attributes, recovery routes, create-account route, and neutral error area.
UX guidance
Use sign in when users are returning to an existing account, protected resource, invitation, draft, checkout, or workspace and need to prove control of an authenticator.
Good UI
A sign-in page names the workspace, shows email or username, password with current-password autocomplete, passkey option, forgot-password link, create-account link, and a destination reminder such as Continue to Q2 budget review.
Bad UI
A failed sign-in says This email exists but the password is wrong, exposing account status.
Good UX
A user opens a private document link, signs in with a saved passkey, and lands back on the same document with focus near the access confirmation.
Bad UX
A user signs in from checkout and lands on a generic account dashboard, losing the cart and payment context.
Best fit
Users need to access an existing account or protected destination.
Avoid when
The user is creating a new account, choosing a new password, or verifying a new contact method.
Required state
Initial sign-in state with service or destination context.
Accessibility burden
Use explicit labels for identifier, password, passkey, SSO, and one-time-code controls rather than placeholder-only prompts.
Common misuse
Using account-specific error messages that reveal whether an identifier exists.

Login

UI or UX
UI + UX - Credential-verification attempt lifecycle and login outcome handling
UI guidance
Render login as the outcome-sensitive credential verification state: pending verification, neutral failure, remaining attempts or wait time when policy allows, throttling or lockout state, unlock or recovery route, and successful session-created confirmation.
UX guidance
Use login when users have already chosen an authentication route and submitted credentials or an authenticator output, and the product must explain the verification result safely.
Good UI
After a failed login, the page keeps the email address, clears the password, shows Check your details and try again, gives 2 attempts remaining, and keeps forgot password and use passkey routes available.
Bad UI
Account enumeration through differentiated login outcomes.
Good UX
A user mistypes the password twice, sees remaining attempts and a neutral account-details error, uses a passkey instead, and reaches the intended workspace with retry warnings cleared.
Bad UX
Account enumeration through differentiated login outcomes.
Best fit
Users have submitted credentials or authenticator output and need a safe verification result.
Avoid when
The problem is choosing an authentication method or explaining why authentication is required before credentials are submitted.
Required state
Ready-to-submit login state with chosen identifier and authenticator route.
Accessibility burden
Keep retry, recovery, unlock, support, and accessible challenge alternatives reachable by keyboard.
Common misuse
Returning different messages for unknown account, wrong password, disabled account, or locked account.

Permission denied state

UI or UX
UI + UX - Authorization and access-boundary state
UI guidance
Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.
UX guidance
Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.
Good UI
A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.
Bad UI
A denial page says Something went wrong and shows Retry even though the user lacks a required group.
Good UX
A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.
Bad UX
Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.
Best fit
A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when
The operation failed for network, server, validation, data, or timeout reasons after permission was granted.
Required state
Whole-object access denied state.
Accessibility burden
Move focus to the permission message when it replaces page content or blocks a workflow.
Common misuse
Treating authorization denial as a generic retryable error.

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.
Decision rules
  • Use session timeout for the already-expired authenticated-session state when private content must be hidden, authenticated controls must stop, and the next valid action is sign in, reauthentication, restart, or safe task restoration.
  • Use session timeout warning when the session is still valid and the user can prevent expiry through a policy-valid action such as stay signed in, save draft, finish now, sign out, or reauthenticate.
  • Use sign in when the user is entering an unauthenticated service or returning to a protected route; session timeout adds the interrupted-task context, signed-out reason, safe reference, and restoration contract.
  • Use login for the credential-verification attempt itself, including pending verification, neutral failure, throttling, lockout, success, and session creation after the timeout screen sends the user there.
  • Use permission denied state when the user has an authenticated session but lacks the role, grant, license, policy, or ownership needed for the resource or action.
  • Use autosave recovery when the main risk is a failed, stale, local-only, or conflicted save; session timeout can route into autosave recovery after reauthentication if local work still needs repair.
  • A session timeout state should hide private content, remove stale authenticated actions, state the session-ended reason, and show safe metadata such as a reference ID, masked account, saved timestamp, or return destination.
  • Do not label expired authentication as access denied, not found, service unavailable, or retryable network failure; those messages send users into the wrong recovery path.
  • After reauthentication, session timeout should validate the return target, account, permission, and saved state, then restore protected content only inside a fresh session.
  • When no recoverable work exists, session timeout should say so plainly and offer a restart path instead of implying that a draft or transaction survived.
Inspect live examples
Failure modes
  • A timed-out form remains visible with Submit enabled, so the next action fails or duplicates work against an expired session.
  • The timeout page says Request access, even though the user simply needs to sign in again.
  • A pre-expiry warning and post-expiry timeout use the same copy, so users cannot tell whether extension is still possible.
  • After sign-in, the app drops the user on a dashboard and loses the interrupted task reference.
  • The timeout support log stores full protected URLs, form answers, tokens, or file names.
  • Autosave failed before timeout, but the timeout page promises the work was saved.

Saved items