Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Submit fails after returning to a previous interaction



When multiple interaction tabs are open, after closing one, the system automatically returns to a previous tab and Interaction. If the first thing that the user does on this current screen is to submit, the command occasionally fails and the screen only partially renders.

Error Messages

1. Unhandled exception executing JSP: null
at com.pegarules.generated.html.ra_stream_cainteractiondriververitical_src_29e6d0b57e7f221ef24a4a8c07ccc423.execute(

2. java.lang.NullPointerException
at com.pegarules.generated.html.ra_stream_cainteractiondriververitical_src_29e6d0b57e7f221ef24a4a8c07ccc423.execute(

3. java.lang.NullPointerException
at com.pegarules.generated.activity.ra_action_cagetinteractiondriverrule_f9a163bd0723c76c83e086ed3b897aa5.step1_circum0(

4. Failed to find instance @baseclass.CASetupInteractionDriverAndPages of type Rule-Obj-Activity.

Steps to Reproduce

  1. Create an interaction.
  2. Change an action.
  3. Create another interaction.
  4. Go to the Interaction Driver, choose Wrap up(Resolve) work item.
  5. Submit the Wrap up.
  6. Observe the interaction is removed and the previous one is displayed.
  7. Click the Submit button

Root Cause

A defect in Pegasystems’ code or rules: A timing issue results in the failure of function CAEventMgmt\determineCPMEventContextId() to find the proper tab id. As a result, the system does not find the proper context (tab), with many downstream failures.


The code in determineCPMEventContextId gets the proper tab id by calling pega.cpm.tabbedInterface.getCorrespondingTabIdFromInteraction(document.body).

The parameter (document.body) passed to this function is only used as a go/nogo condition; if it is null, a null tab id is returned. Otherwise, it is not used by the function to find the actual tab id.

The use of "document.body" as the parameter is an indirect way of detecting if the DOM has loaded prior to calling the function. Occasionally, "document.body" is null because the DOM has not finished loading. However, even when "document.body" is null, "document" is already loaded. When "document" is loaded, enough of the structure exists for the function pega.cpm.tabbedInterface.getCorrespondingTabIdFromInteraction to correctly find the tab id.

The change that is made is to create a custom version of CAEventMgmt and change this line of code:
return pega.cpm.tabbedInterface.getCorrespondingTabIdFromInteraction(document.body);

to this:
return pega.cpm.tabbedInterface.getCorrespondingTabIdFromInteraction(document);
Suggest Edit

Published August 26, 2017 - Updated December 2, 2021

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us