My Oracle Support Banner


Last updated on FEBRUARY 18, 2021

Applies to:

Oracle Application Express (APEX) - Version and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Cloud Exadata Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Information in this document applies to any platform.


Problem :
PREPARE_URL doesn't generate a public bookmark checksum in scheduled job.

A scheduled database job which processes some data. When the job completes, it sends an email to a list of users containing an APEX url to the result page.

When logged in, and clicked on the email link, you are logged out from APEX,  although rejoin sessions is enabled for all sessions.
According to the documentation this is because the URL should have a checksum to enable the rejoin sessions feature to work.
In this case a checksum isn't computed even though APEX_UTIL.prepare_url is executd from a database job.

How can a public bookmark url containing a checksum be generated in a database job to enable rejoin sessions to work?


For example,  APEX application Page 2000 is a page which the user needs to access from the mail using a parameter (P2000_ID).
The user doesn't need to sign in the application to access the page so the page setting "Authentication" has been changed to "Page Is Public".

But when the user accesses this page through the URL generated in the mail, and the user is already signed in to the APEX application, the session need to rejoin so the user isn't logged out.
For rejoin sessions to work, a checksum in the URL is required, but it's impossible to generate a checksum in a database job.

* Execute the application

* Many records are seen, and one example is:

I see many records and one of it is :

31-JAN-18 PM https://<HOSTNAME>/apex/f?p=TESTCASE:2000::::RP,2000:P2000_ID:123456789

* Copied and pasted the above URL in a new Firefox browser: https://<HOSTNAME>/apex/f?p=TESTCASE:2000::::RP,2000:P2000_ID:123456789
and pasted in a new fresh firefox browser :

* Saw the link Set Timezone and then got :

Session state protection violation: This may be caused by manual alteration
of a URL containing a checksum or by using a link with an incorrect or
missing checksum. If you are unsure what caused this error, please contact
the application administrator for assistance.

Contact your application administrator.

* If the same URL is copied paste in same browser (Chrome) in new tab, the following error is seen:

checksum was provided to show processing for a page that requires a
checksum when one or more request, clear cache, or argument values are passed
as parameters.
Contact your application administrator.

Technical Info (only visible for developers)
is_internal_error: true
component.type: APEX_APPLICATION_PAGES 77453000002000 Public page
----- PL/SQL Call Stack -----
object line object
handle number name
0x21acbdbd0 942 package body APEX_050100.WWV_FLOW_ERROR
0x21acbdbd0 1010 package body APEX_050100.WWV_FLOW_ERROR
0x21acbdbd0 1402 package body APEX_050100.WWV_FLOW_ERROR
0x21ed2b758 3733 package body APEX_050100.WWV_FLOW
0x21ed2b758 4471 package body APEX_050100.WWV_FLOW
0x214c2df18 173 procedure APEX_050100.F
0xc36f8078 2 anonymous block


Whether or not it is possible to get to the generated page is dependent on the navigation method, browser and where the user is navigating from.


To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.