Idea Summary
Enhance APEX session timeout handling to provide a consistent, user-friendly experience across all contexts — including full-page requests, AJAX calls, and popup dialogs.
Currently, the Session Timeout URL and Session Idle Timeout URL settings only apply to full-page requests. If a session expires during an AJAX call or while working in a modal dialog, APEX shows a small notification or embeds the timeout message in the dialog.
This inconsistent behavior is confusing for end users, especially in enterprise and client-facing applications where clarity and trust are important. A unified approach would ensure users always see a clear, branded, and predictable timeout screen or prompt, regardless of how the timeout occurs.
Use Case
AJAX calls: A user saves data or refreshes a report via AJAX; if the session has expired, they get a small notification that may be overlooked, leading to confusion about whether their action succeeded.
Popup dialogs: A user is in the middle of editing a record in a modal dialog; when the session expires, the timeout message appears inside the small dialog area, breaking the flow and making it unclear how to resume work.
Client-facing portals: For applications used by non-technical audiences or external customers, inconsistent timeout handling leads to support calls and frustration.
Compliance and branding: Organizations that require a unified branded timeout screen for security and UX consistency cannot currently apply it across all interaction types.
Preferred Solution (Optional):
Add a global session timeout handling option that applies equally to full-page requests, AJAX calls, and modal dialogs.
Allow developers to configure the timeout action globally:
Redirect to a specified URL (e.g., login or custom timeout page)
Show a consistent branded modal timeout dialog
Display a clear, non-dismissable notification
Provide a setting to configure the “Sign In” or “Reconnect” link destination without custom coding.
Ensure that AJAX responses indicating session expiry automatically trigger the same consistent timeout handling logic.
Optionally, allow a countdown warning before timeout, even in modals or AJAX-driven pages, so users can extend their session.