Somehow you are not submitting the output of RuleORama. This is the big hint:
RuleORama works fine with Open Ears but when I used RapidEars it stopped working.
It isn’t possible that RuleORama was working fine with OpenEars previously – the reason is that you were successfully passing the grammar to OpenEars which was referenced with “pathToSuccessfullyGeneratedGrammarWithRequestedName”. This method could never reference a RuleORama generated grammar; it isn’t possible. So if you have been using this method the whole time and it was working with OpenEars and it isn’t working with RapidEars, that means that you were unquestionably passing a JSGF to OpenEars. A JSGF is not generated by RuleORama but it is generated by stock OpenEars, and the JSGF format is supported by stock OpenEars and not by RapidEars, and the method pathToSuccessfullyGeneratedGrammarWithRequestedName can pass the path to a stock OpenEars JSGF grammar but not a RuleORama grammar, so all of these things mean that the grammar that was working previously with OpenEars wasn’t generated by RuleORama.
So, you can solve this issue when you can isolate the reason that you are passing a JSGF grammar generated by stock OpenEars but it seems like the RuleORama output. Most likely you are generating it and assigning the output to your property twice or something like that.
There is a very simple and copy-paste-able introduction to using RuleORama in the tutorial tool, have you taken a look at it to see how it works? https://www.politepix.com/openears/tutorial