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

Multi-channel campaign fails with an error



Multi-channel campaign fails without sending offers.

Error Messages

com.pega.dsm.dnode.api.dataflow.StageException: Exception in stage: Interaction History at com.pega.dsm.dnode.api.dataflow.StageException.create( at com.pega.dsm.dnode.api.dataflow.DataFlowStage$StageInputSubscriber.onCompleted( at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor$5.process( at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor.runEventLoop( at com.pega.dsm.dnode.api.dataflow.DataFlow$2.emit( at at com.pega.dsm.dnode.impl.dataflow.task.strategy.ExecutionStrategy.executeDataFlow( at com.pega.dsm.dnode.impl.dataflow.task.strategy.SinglePartitionExecution.executePartitions( at com.pega.dsm.dnode.impl.dataflow.task.ExecutePartitionsTask.execute( at com.pega.dsm.dnode.impl.dataflow.task.PickupRunTask$ExecutePartitionsRunnable$ at com.pega.dsm.dnode.impl.dataflow.task.PickupRunTask$ExecutePartitionsRunnable$ at com.pega.dsm.dnode.util.PrpcRunnable.execute( at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeInPrpcContextInternal( at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeInPrpcContext( at com.pega.dsm.dnode.impl.dataflow.task.PickupRunTask$ at java.util.concurrent.Executors$ at$TrustedFutureInterruptibleTask.runInterruptibly( at at at java.util.concurrent.ThreadPoolExecutor.runWorker( at java.util.concurrent.ThreadPoolExecutor$ at com.pega.dsm.dnode.util.PrpcRunnable$ at com.pega.dsm.dnode.util.PrpcRunnable$ at com.pega.dsm.dnode.util.PrpcRunnable.execute( at com.pega.dsm.dnode.impl.prpc.PrpcThreadFactory$ Caused by: java.lang.NoClassDefFoundError: com/pega/pegarules/data/internal/store/RetryPolicy at at at

Steps to Reproduce

Create and run the Multi-channel campaign.

Root Cause

A defect in Pegasystems’ code or rules. The platform leverages a custom class loader which loads classes to the JVM from a database. The DataStoreManager class interfaces with the database and enters a logic that uses the RetryPolicy class when there is no connection to the database. In this scenario, at the point where the connection to the database is lost, the RetryPolicy class cannot be loaded to the JVM by the custom class loader as there is no connection. The fix for this engine defect is to ensure that the RetryPolicy class loads onto the engine on startup and not as required by the database.


Perform the following local-change: 
Create the below Dynamic System Setting (DSS) and perform a restart:

Ruleset: Pega-EngineSetting
Purpose: prconfig/initialization/preloadengineclasses/default 


Published March 25, 2020 - Updated December 2, 2021

Was this useful?

0% found this useful

Have a question? Get answers now.

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

Did you find this content helpful?

Want to help us improve this content?

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