Running CiviCRM 5.3.2 on the latest Wordpress. I recently migrated the site from an older version of Civi on another server.
Unsubscribe links from mailings load the confirmation page correctly, with the correct partially obscured firstname.lastname@example.org. But when I fill in the email address and click Unsubscribe, it displays:
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred. Missing Parameters
Return to home page.
I turned debugging on, and it shows it failing on line 574 of CRM/Core/Form.php
That line is calling preProcess(), which is defined in Utils/Request.php. The "Missing Parameters" exception is thrown there when jid, qid, or h can't be found.
I wrote the $this object to a log file, and it does show the correct jid, qid, and h in _submitValues -> entryURL. But jid, qid, and h aren't extracted and stored one by one anywhere.
That's as far as I can think to go. I'm not sure how those are supposed to be extracted and made available for preProcess to retrieve(), so I'm not sure what to look at next. Thoughts?
Also, on some of the backend pages, I sometimes get a popup in the upper right with the same "Missing Parameters" error. The pages seem to work normally though, and it hasn't happened enough for me to intuit a pattern.
I did try disabling all Wordpress plugins except CiviCRM, but that didn't change the behavior.
Maybe relevant: when I migrated, and ran the database upgrade after unpacking the latest CiviCRM files, the upgrade timed out twice(?) in the middle of running. (I believe php-fpm timeout was set to the default 30 seconds.) I reloaded the upgrade page and it seemed to resume the upgrade just fine, with no errors. But maybe that caused a problem?
Thanks for any pointers!