Am running CiviCRM 5.9.0 on WordPress 4.9.9, PHP 7.1.25.
When I use a contribution page for memberships that worked before on another hosting provider and on a previous version of CiviCRM, the unsupervised reserved dedupe rule worked fine. Now, every time someone renews their membership online, I get a duplicate record. Not sure when this broke, when we moved over from our old hosting provider, when I updated CiviCRM, or if there's another reason why it doesn't work. I do know that it definitely worked late last year when we started getting some early renewals for 2019 and the system was on our old provider, running an older version of Civicrm and possibly an older version of PHP.
If I manually run the rule, it brings up the duplicates and I can merge them. The merge screen shows that the email, first name and last name are exactly the same. In fact, if I enter the exact same contact information for all contact fields, it still doesn't dedupe.
There is an error in the error_log, and not sure if this is the reason: [14-Jan-2019 14:00:52 America/Toronto] PHP Warning: A non-numeric value encountered in /home/xxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Main.php on line 900. This line is contained in a "// return if this is express mode" section.
If I have to manually dedupe all of our online membership renewals, this will be a real pain, so any hints are greatly appreciated.