Back to compare picker

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

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.

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.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 session timeout when the session is no longer valid and the product must protect privacy while helping the user recover safely through sign-in, reauthentication, return-to-task restoration, or a saved-draft route.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 app logs out after 15 minutes with no countdown and clears a long form.A sign-in page has four equal buttons for sign in, create account, reset password, and browse plans, with no indication of the protected destination.The page says Password wrong for one email and No account found for another.A denial page says Something went wrong and shows Retry even though the user lacks a required group.A small toast says Could not save and disappears while the form still shows a green Saved label.
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.A user gets locked out after repeated typos with no warning and no explanation of when to retry.The app returns a blank screen for a restricted file, so the user cannot tell whether the file is gone, private, or opened with the wrong account.A user submits after seeing Saved, but the newest section was failed and never reached the server.
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.There is no authenticated session boundary and the issue is ordinary navigation away.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 user is not signed in and the next step is authentication rather than authorization.The product does not use autosave or local draft persistence.
Required state Expired session state with private content hidden.Active session with no warning.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.Announce verifying, failed-login, throttled, lockout, and success states without forcing focus away from the next useful action.Use a heading that identifies the access boundary and a text description that does not rely on lock icons or red color alone.Announce failed, local-only, retrying, recovered, and conflict states through status text without repeating every save attempt.
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
Use session timeout when the session is no longer valid and the product must protect privacy while helping the user recover safely through sign-in, reauthentication, return-to-task restoration, or a saved-draft route.
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 app logs out after 15 minutes with no countdown and clears a long form.
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
There is no authenticated session boundary and the issue is ordinary navigation away.
Required state
Active session with no warning.
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 sign-in page has four equal buttons for sign in, create account, reset password, and browse plans, with no indication of the protected destination.
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
The page says Password wrong for one email and No account found for another.
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
A user gets locked out after repeated typos with no warning and no explanation of when to retry.
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
Announce verifying, failed-login, throttled, lockout, and success states without forcing focus away from the next useful action.
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
The app returns a blank screen for a restricted file, so the user cannot tell whether the file is gone, private, or opened with the wrong account.
Best fit
A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when
The user is not signed in and the next step is authentication rather than authorization.
Required state
Whole-object access denied state.
Accessibility burden
Use a heading that identifies the access boundary and a text description that does not rely on lock icons or red color alone.
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
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.
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.