Applies to Pega Platform versions 7.2 through 8.5.2
What is rule resolution?
See Rule resolution.
Issues with rule resolution can surface in the following ways:
- A RuleNotFoundException is seen on the screen or in the logs.
- The wrong rule is executed (wrong ruleset version or circumstanced version).
- New rules or versions of a rule are not picked up after a deployment.
Here are examples of typical errors seen in the logs or on screen:
com.pega.pegarules.pub.generator.RuleNotFoundException: Failed to find a <rule type> with the name <rule name> that applies to <class name>
com.pega.pegarules.pub.generator.RuleNotFoundException: Failed to find instance @baseclass.<rule name> of type <rule type>
Rule obj-when instance not found
Failed to find instance <rule name>
Rule resolution issues are commonly caused by the following incorrect usage:
Incorrect page class
In most cases the problem is caused when the primary page has a wrong class, is classless (possibly blank), or is missing altogether.
Generally, the step page is used to resolve a rule. However, evaluation of circumstance conditions uses the primary page only. For example, if a rule is circumstanced on the property .CustomerType, and this rule is encountered during the running of an activity, the circumstance property .CustomerType must be found on the primary page of the activity, not on the step page of the current step.
Incorrect rule ranking
Rules are ranked in the order of AppliesTo, Ruleset, and Circumstance.
Null value for rule availability
When a new rule is created, make sure that the property pyRuleAvailable of that rule has a value. A null value (an empty property value) will cause the rule to be ignored by the rule resolution process.
- Preventing incorrect page class
- Preventing invalid circumstancing
- Preventing incorrect rule ranking
- Preventing null value for rule availability
- Contacting GCS
Preventing incorrect page class
When the primary page has a wrong class, is classless (possibly blank), or is missing altogether, verify using the Tracer to see against which "applies to class" the rule is being resolved.
Preventing invalid circumstancing
Ensure that a circumstanced property is specified on the primary page of the activity, not on the step page of the current step.
Preventing incorrect rule ranking
Ensure that the expected rule is in the right ruleset based on the user's ruleset list and AppliesTo class.
Preventing null value for rule availability
When a new rule is created, make sure that the property pyRuleAvailable of that rule has a value.
Contacting Global Client Support
If you need assistance with isolating your rule resolution issue, go to the Pega Support Center and post your question.