java.lang.NullPointerException: after upgraded to infinity 23.1.3

Hello,

logs are getting filled out with below exception, Please provide the resolution to get rid of this exception.

Attaching entire stack trace below

java.lang.NullPointerException
java.lang.NullPointerException: null
at com.pega.pegarules.exec.internal.util.crypto.PRCryptoImpl.decryptURLActionString(PRCryptoImpl.java:1275) ~[prprivate-exec.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.decryptFixedParams(HttpAPI.java:2833) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.decryptAndParseFixedParams(HttpAPI.java:2762) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.withLockSetup(HttpAPI.java:2715) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:443) ~[prenginext.jar:?]
at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) ~[?:1.8.0]
at java.lang.reflect.Method.invoke(Method.java:508) ~[?:1.8.0]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1392) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1124) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:978) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:380) ~[prenginext.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:954) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:338) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:282) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:259) ~[prprivate-session.jar:?]
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:281) ~[prpublic.jar:?]
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:226) ~[prpublic.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.invokeEngine(WebStandardImpl.java:865) ~[prwebj2ee.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:813) ~[prwebj2ee.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.doPostInner(WebStandardImpl.java:435) ~[prwebj2ee.jar:?]
at sun.reflect.GeneratedMethodAccessor159.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) ~[?:1.8.0]
at java.lang.reflect.Method.invoke(Method.java:508) ~[?:1.8.0]
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:388) ~[prbootstrap-8.23.3-636.jar:8.23.3-636]
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:430) ~[prbootstrap-8.23.3-636.jar:8.23.3-636]
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:225) ~[prbootstrap-api-8.23.3-636.jar:8.23.3-636]
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:274) ~[prbootstrap-api-8.23.3-636.jar:8.23.3-636]
at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doPost(WebStandardBoot.java:164) ~[prbootstrap-api-8.23.3-636.jar:8.23.3-636]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) ~[javax.j2ee.servlet.jar:?]
at com.pega.pegarules.internal.web.servlet.WebStandardBoot.service(WebStandardBoot.java:191) ~[prbootstrap-api-8.23.3-636.jar:8.23.3-636]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) ~[javax.j2ee.servlet.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1114) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:952) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:213) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1833) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) ~[com.ibm.ws.runtime.jar:?]

@Pavan Bojja You’ve not given much details but below a possible area to investigate.

What version did you upgrade from?

I suggest that you log a support ticket via the MSP if your troubleshooting does not bring you any success. Please provide the INC here so that we can track progress.

:warning: This is a GenAI-powered tool. All generated answers require validation against the provided references.

The NullPointerException occurring in PRCryptoImpl.decryptURLActionString is typically related to URL encryption mechanism issues after an upgrade.

Specifically, this error can occur due to:

  1. Stale requestor objects trying to access encryption properties
  2. Incompatibility between old and new encryption keys after the upgrade
  3. Thread/requestor scope misalignment in the URL encryption mechanism

Solution: To resolve this issue, please implement the following steps:

  1. Verify URL Encryption Configuration
    • Check the prconfig settings for URL encryption
    • Ensure the initialization/URLEncryption setting is properly configured
    • Verify that crypto/useportablecipherforurlencryption is set correctly
  2. Clear System Caches
    • Navigate to Designer Studio > System > Tools > Administration > System Tools
    • Select and execute “Clear System Caches”
    • This will ensure any stale encryption keys are removed
  3. Restart Application Server Nodes
    • Perform a controlled restart of your application server nodes
    • This ensures proper initialization of the encryption mechanism
    • Important: Restart nodes one at a time to maintain system availability
  4. Monitor Error Logs
    • After implementing these changes, monitor your logs for any recurrence
    • Pay special attention to crypto-related exceptions
    • Ensure no new instances of the NullPointerException appear

Preventive Measures: To prevent this issue from recurring:

  1. Enable fallback handling for cryptographic exceptions by adding the following to your prconfig:
  2. crypto/enableFallbackDecryption=true
  3. Implement proper node quiesce procedures during upgrades to prevent abrupt shutdowns that can cause encryption key issues

References:

  1. Pega Platform 8.4.5 Patch Resolved Issues
  2. Pega Platform 8.2.4 Patch Documentation

As I said , please log a support ticket if other community users do not respond/ do not recognise the error you have provided.