Short summary of the problem – if you have Magento catalog price rules with multiple select attributes in conditions or ONE OF price rules conditions with comma separated values – on latest Magento versions – you can have Array to string conversion error during you apply rules or incorrect rules behavior.
In this post we provide explanation and information about how to fix this Magento core bug what exists on latest Magento Community Edition 1.9.1 and Enterprise Edition 18.104.22.168 (confirmed on this versions by a lot of manualtests described below, we also know that on Magento CE 1.7 everything works fine and according to StackExchange issue can exist on all versions CE 1.8.x – 1.9.x). Issues are already reported on Magento bug tracker, but no any official patches are confirmed. Fixes provided below have been created in urgent matter for the significant Magento upgraded from 1.7 to 1.9.1. The update includes about 100 different price rules and 20000 products, fixes were tested and used on production but we can not guarantee that our core patches resolve issue complete. Keep in mind, that all code is provided without any guarantees and you can use it on your own responsibility. In a case when something went wrong, we can’t be blamed. We hope to get official patches for Community and Enterprise editions from Magento team as soon as possible!