SAS® OnDemand Decision Engine fails to start with a "Syntax error" if a rule name contains unbalanced parentheses


If you create a rule with a name that contains unbalanced parentheses, both the rule test and rule estimation fail with a syntax error. In addition, SAS OnDemand Decision Engine reports a fatal error and does not start.

The error displayed when you run a rule test is as follows:

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, arrayname, #, (, +, /, //, ;, @, @@, OVERPRINT, _ALL_, _BLANKPAGE_, _ODS_, _PAGE_.

The rule estimation error reported in the estimation.log file is as follows:

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, arrayname, #, (, +, /, //, ;, @, @@, OVERPRINT, _ALL_, _BLANKPAGE_, _ODS_, _PAGE_. 

In addition, SAS OnDemand Decision Engine reports the following error in the console log:

2026-04-21T17:21:26,892 [main] FATAL Main

com.sas.finance.fraud.engine.client. ConfigurationException: SAS exited, see the SAS log, rc=2

at com.sas.finance.fraud.engine.sas. SharedMemorySAS$Primordial.<init>(SharedMemorySAS.java:753) ~[sas.finance.fraud.engine.jar: 6020101.2.0.20260303111557_f1rapt62p]

The syntax error reported in the SAS log for the SAS OnDemand Decision Engine is as follows:

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, arrayname, #, (, +, /, //, ;, @, @@, OVERPRINT, _ALL_, _BLANKPAGE_, _ODS_, _PAGE_.

Workaround

To work around this issue, rename the rule to include the same number of “(“ and “)” characters. Once the parentheses are balanced, the syntax error is resolved. After you promote the updated rule to production and redeploy a new rules file, SAS OnDemand Decision Engine starts.