Unable to create Email Treatment using Pega-Infinity 23 GenAI

Did anyone try to build a Pega CDH application email treatment using Pega GenAI capabilities? We could notice some backend errors (We got the successful rest API response from the Azure Open AI model, but there is an issue with the Pega stream rule).

Did anyone notice this error and get any workaround? Pega support request reference: INC-A22859

Pega Error Log:

com.pega.pegarules.pub.clipboard.InvalidStreamError: Invalid clipboard stream detected in module (unspecified).  Reason: (unspecified) 
	at com.pega.pegarules.data.internal.clipboard.JSONStream.parseJSONStream(JSONStream.java:134) ~[prprivate-data.jar:?] 
	at com.pega.pegarules.data.internal.clipboard.JSONStreamFactory.newJSONStream(JSONStreamFactory.java:61) ~[prprivate-data.jar:?] 
	at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.adoptJSONArray(ClipboardPageImpl.java:551) ~[prprivate-data.jar:?] 
	at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.adoptJSONArray(ClipboardPageImpl.java:544) ~[prprivate-data.jar:?] 
	at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.adoptJSONObject(ClipboardPageImpl.java:539) ~[prprivate-data.jar:?] 
	at com.pegarules.generated.activity.ra_action_consumegenairesponsefortreatments_6b8277ca6b546779d27cd0f1fcf462c3.step1_circum0(ra_action_consumegenairesponsefortreatments_6b8277ca6b546779d27cd0f1fcf462c3.java:180) ~[?:?] 
	at com.pegarules.generated.activity.ra_action_consumegenairesponsefortreatments_6b8277ca6b546779d27cd0f1fcf462c3.perform(ra_action_consumegenairesponsefortreatments_6b8277ca6b546779d27cd0f1fcf462c3.java:76) ~[?:?] 
	at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:2876) ~[prprivate-session.jar:?] 
	at com.pegarules.generated.activity.ra_action_connecttogenerativeai_7ca49c2ceef388214a0e63a7046eb57d.step16_circum0(ra_action_connecttogenerativeai_7ca49c2ceef388214a0e63a7046eb57d.java:1522) ~[?:?] 
	at com.pegarules.generated.activity.ra_action_connecttogenerativeai_7ca49c2ceef388214a0e63a7046eb57d.perform(ra_action_connecttogenerativeai_7ca49c2ceef388214a0e63a7046eb57d.java:393) ~[?:?] 
	at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:2876) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.exec.internal.declare.infengine.pages.DeclarativePageDirectoryImpl.runRule(DeclarativePageDirectoryImpl.java:1780) ~[prprivate-exec.jar:?] 
	at com.pega.pegarules.exec.internal.declare.infengine.pages.DeclarativePageDirectoryImpl.runLoadActivity(DeclarativePageDirectoryImpl.java:508) ~[prprivate-exec.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.handler.ReadOnlyDataPageHandler.loadDataPage(ReadOnlyDataPageHandler.java:290) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.handler.ReadOnlyDataPageHandler.findDataPageInner(ReadOnlyDataPageHandler.java:502) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.handler.ReadOnlyDataPageHandler.findDataPage(ReadOnlyDataPageHandler.java:444) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.AbstractPageDirectory.findDataPageInCurrentDir(AbstractPageDirectory.java:995) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.AbstractPageDirectory.getDirectPage(AbstractPageDirectory.java:762) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.getDirectPage(ThreadPageDir.java:378) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.getPage(ThreadPageDir.java:336) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.getPage(PRThreadImpl.java:612) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.Executable.findPage(Executable.java:2561) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.Executable.findDataPage(Executable.java:11695) ~[prprivate-session.jar:?] 
	at com.pegarules.generated.activity.ra_action_generatesuggestion_7199f46fc281d8ca85a5d1c7c467c18f.perform(ra_action_generatesuggestion_7199f46fc281d8ca85a5d1c7c467c18f.java:129) ~[?:?] 
	at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:2876) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:653) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivitiesAlt(PRThreadImpl.java:523) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.runActivities(HttpAPI.java:4311) ~[prprivate-session.jar:?] 
	at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:456) ~[prenginext.jar:?] 
	at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source) ~[?:?] 
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_312] 
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_312] 
	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:379) ~[prenginext.jar:?] 
	at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:937) ~[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:853) ~[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.GeneratedMethodAccessor282.invoke(Unknown Source) ~[?:?] 
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_312] 
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_312] 
	at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:388) ~[prbootstrap-8.23.0-110.jar:8.23.0-110] 
	at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:430) ~[prbootstrap-8.23.0-110.jar:8.23.0-110] 
	at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:225) ~[prbootstrap-api-8.23.0-110.jar:8.23.0-110] 
	at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:274) ~[prbootstrap-api-8.23.0-110.jar:8.23.0-110] 
	at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doPost(WebStandardBoot.java:164) ~[prbootstrap-api-8.23.0-110.jar:8.23.0-110] 
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) ~[servlet-api.jar:4.0.FR] 
	at com.pega.pegarules.internal.web.servlet.WebStandardBoot.service(WebStandardBoot.java:191) ~[prbootstrap-api-8.23.0-110.jar:8.23.0-110] 
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[servlet-api.jar:4.0.FR] 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.80] 
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-websocket.jar:9.0.80] 
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[catalina.jar:9.0.80] 
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[catalina.jar:9.0.80] 
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-coyote.jar:9.0.80] 
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-coyote.jar:9.0.80] 
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-coyote.jar:9.0.80] 
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1790) ~[tomcat-coyote.jar:9.0.80] 
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-coyote.jar:9.0.80] 
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-util.jar:9.0.80] 
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-util.jar:9.0.80] 
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.80] 
	at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_312] 

@Nanjundan Chinnasamy Is your instance hosted on Pega Cloud?

Hi @RaghuShankhawaram ,

No. we are using our instance to build the CDH demo/capabilities for the potential clients. Above mentioned errors are from our own private cloud instance.

If Pega GenAI capabilities are limited to Pega Cloud, could you please help us with the guidelines made available to Pega Partners to use the Pega GenAI capabilities for client demos?

We further analyzed this issue. It looks to me like the “Generate fields” fields are empty for the email treatment, which is the root cause of the issue. Please refer to the attached screen-print attached. Do we have any outstanding HotFix to get this issue addressed?

Thanks,

Nanjundan Chinnasamy | Pega Lead Decision Architect | DCS

Hi @Nanjundan Chinnasamy ,

This is an UI issue and does not stop from talking to Generative AI. The reason you are not seeing proper responses is that this feature is supported OOTB only on PegaCloud.

Having said that, could you raise a incident for this issue.

Thanks,

Bala Krishna.

Hi @vepub,

As I stated in the initial conversation, We could see the call to GenAI is successful, however, it’s a rendering issue in the UI. UI rendering issue could be down to the list of “Generate fields” being empty from the UI and the response is expecting “Generate fields” to populate the API response to the respective fields like Email Subject, Headline content etc.

Pega support request reference: INC-A22859

Thanks,

Nanjundan Chinnasamy | Pega Lead Decision Architect | DCS

@Nanjundan Chinnasamy @SushantBalur I see that INC-A22859 (Unable to create Email Treatment using Pega-Infinity 23 GenAI ) was closed by our support team back in November last year.

Note: The workaround is only to circumvent the current blocker for the demo purpose and not a full fledged solution from Pega product side. This workaround is only to be applied on the demo envirornment and not extended to other upgraded environments.

The GenAI feature is specifiaclly fro Pega Cloud deployment and is not available for on-prem system at this point.

As we discussed, we suggest you to request a Pega Labs environment as suggested on the call.

On the Pega Labs environment you will be able to use the Gen AI feature for your demo purpose.

Regarding the “Genrrate Fields” not populating, we have seen the reason why this is not happening is because the pyChannel property is blank and not being passed to the D_GetFieldsToGenerate data page in the Ops manager context, when you open the “AI Optons”.

We suspect the following reason :-

  1. You have done a fresh installation of CDH’23

  2. You have imported the CDH-App from your CDH 8.8 environment.

  3. Thus the application level upgrade did not happen and possibly causing the missing value issue.

Next Steps:

Please try either of this :-

  1. If you have any test 8.8 CDH env you can take the upgrade path and follow the steps correctly.

  2. Once upgraded to CDH’23, verify the usecase.

Workaround

You can also exted the AIConfigurationsForTreatments section and edit the “action” of te AI Options button to pass the pyChannel as parameter and test.

@Nanjundan Chinnasamy / @RaghuShankhawaram

Hello

We are facing a similar issue. Have an on-prem system prepared up for client demos. We have managed to get the response from OpenAI, but the field mapping is causing a problem. The error is he same as the one in the error log above in this thread.

Could I please understand what was the resolution, if there was one.

Thanks
Sushant Balur