Troubleshooting rule resolution issues
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:
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.
Rules are ranked in the order of AppliesTo, Ruleset, and Circumstance.
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
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.
See the Help topic, Application debugging using the Tracer tool.
Ensure that a circumstanced property is specified on the primary page of the activity, not on the step page of the current step.
Ensure that the expected rule is in the right ruleset based on the user's ruleset list and AppliesTo class.
When a new rule is created, make sure that the property pyRuleAvailable of that rule has a value.
If you need assistance with isolating your rule resolution issue, go to My Support Portal and submit a support case.