Hello,
Our team has already identified the cause. A fix for this will be included in the next plugin update.
We would also like to share all the technical details of this issue and what exactly is failing.
Our entire team and the developers checked this in detail, and it looks like the issue is with the WordPress HTTP API on WPEngine, not the WP.org API endpoint.
The endpoint https://api.wordpress.org/plugins/info/1.0/seo-by-rank-math.json
does return the full data, including the versions field, but only when the request bypasses WordPress HTTP API.
That call is done on the file seo-by-rank-math\includes\modules\version-control\class-version-control.php
on the function get_plugin_info();
To confirm this, we tested the following different ways to call the API:
wp_remote_get()
: No versions field (Currently used by our plugin)
plugins_api()
: No versions field
file_get_contents()
: Full response including versions
So, it does seem like something in WPEngine’s environment (likely a proxy, firewall, or modified cURL config) is interfering with or truncating HTTP API responses.
What we noticed is that when we make that call from websites hosted on WP Engine, the last piece of the data from the response, which includes the versions of the plugin, is not available. That is only available when we use the function file_get_contents()
.
Using file_get_contents()
works because it entirely avoids the WordPress HTTP wrapper.
To test this on the website, you can output the results of the following calls to the logs and see the difference:
$missing_versions_key = wp_remote_get('https://api.wordpress.org/plugins/info/1.0/seo-by-rank-math.json');
$has_versions_key = file_get_contents('https://api.wordpress.org/plugins/info/1.0/seo-by-rank-math.json');
This should be able to be confirmed by the WP Engine teamif you pass this information along to them.
Rest assured that we are working on a permanent fix for this matter, but we thought it would be beneficial to also share the information with WP Engine since we only see this happening on servers hosted there at the moment.
Don’t hesitate to get in touch if you have any other questions.