rankmath / seo-by-rank-math

Rank Math is a revolutionary WordPress SEO Plugin that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible :bulb: :chart_with_upwards_trend: →
https://rankmath.com
107 stars 52 forks source link

Critical error on instant indexing #150

Open alejandroserrat opened 1 year ago

alejandroserrat commented 1 year ago

Problem

Critical error on save post/page when instant indexing is active.

Fatal error: Uncaught TypeError: array_reverse(): Argument #1 ($array) must be of type array, bool given in /usr/home/[example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php:365](http://example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php:365) Stack trace: #0 /usr/home/[example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php](http://example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php)(365): array_reverse(false) #1 /usr/home/[example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php](http://example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php)(280): RankMath\Instant_Indexing\Instant_Indexing->api_submit('https://terraza/...', false) #2 /usr/home/[example.com/web/wp-includes/class-wp-hook.php](http://example.com/web/wp-includes/class-wp-hook.php)(308): RankMath\Instant_Indexing\Instant_Indexing->save_post(6, Object(WP_Post), true) #3 /usr/home/[example.com/web/wp-includes/class-wp-hook.php](http://example.com/web/wp-includes/class-wp-hook.php)(332): WP_Hook->apply_filters('', Array) #4 /usr/home/[example.com/web/wp-includes/plugin.php](http://example.com/web/wp-includes/plugin.php)(517): WP_Hook->do_action(Array) #5 /usr/home/[example.com/web/wp-includes/post.php](http://example.com/web/wp-includes/post.php)(4706): do_action('save_post_page', 6, Object(WP_Post), true) #6 /usr/home/[example.com/web/wp-includes/post.php](http://example.com/web/wp-includes/post.php)(4819): wp_insert_post(Array, false, true) #7 /usr/home/[example.com/web/wp-admin/includes/post.php](http://example.com/web/wp-admin/includes/post.php)(426): wp_update_post(Array) #8 /usr/home/[example.com/web/wp-admin/post.php](http://example.com/web/wp-admin/post.php)(227): edit_post() #9 {main} thrown in /usr/home/[example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php](http://example.com/web/wp-content/plugins/seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php) on line 365
There has been a critical error on this website. Please check your site admin email inbox for instructions.

Solution:

Check if $api->get_log() is_array on line 364 in file /seo-by-rank-math/includes/modules/instant-indexing/class-instant-indexing.php:

if ( ! $is_manual_submission && is_array($api->get_log()) ) {
    $logs = array_values( array_reverse( $api->get_log() ) );
    if ( ! empty( $logs[0] ) && $logs[0]['url'] === $url && time() - $logs[0]['time'] < self::THROTTLE_LIMIT ) {
        return false;
    }
}