jetpack icon indicating copy to clipboard operation
jetpack copied to clipboard

WP Super Cache causing "Uncaught TypeError"

Open rob-kne opened this issue 1 year ago • 4 comments

Impacted plugin

Super Cache

Quick summary

Wordpress gives out error message because of WP Super Cache plugin, more info see below.

Steps to reproduce

For some days now I daily get an error message from Wordpress saying my website has a "technical error".

In the error details it says the following (in German due to my localization):

WordPress-Version 6.5.3 Aktives Theme: OceanWP (Version 3.5.5) Aktuelles Plugin: WP Super Cache (Version 1.12.1) PHP-Version 8.2.18

Fehler-Details

Ein Fehler vom Typ E_ERROR wurde in der Zeile 2937 der Datei /srv/www/htdocs/mydomainname/wp-content/plugins/wp-super-cache/wp-cache.php verursacht. Fehlermeldung: Uncaught TypeError: array_unshift(): Argument #1 ($array) must be of type array, null given in /srv/www/htdocs/mydomainname/wp-content/plugins/wp-super-cache/wp-cache.php:2937 Stack trace: #0 /srv/www/htdocs/mydomainname/wp-content/plugins/wp-super-cache/wp-cache.php(2937): array_unshift() #1 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(326): wp_cache_plugin_actions() #2 /srv/www/htdocs/mydomainname/wp-includes/plugin.php(205): WP_Hook->apply_filters() #3 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php(377): apply_filters() #4 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(324): Automattic\Jetpack\Sync\Modules\Callables->set_plugin_action_links() #5 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #6 /srv/www/htdocs/mydomainname/wp-includes/plugin.php(517): WP_Hook->do_action() #7 /srv/www/htdocs/mydomainname/wp-admin/includes/class-wp-screen.php(424): do_action() #8 /srv/www/htdocs/mydomainname/wp-admin/includes/screen.php(243): WP_Screen->set_current_screen() #9 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(527): set_current_screen() #10 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(629): Automattic\Jetpack\Sync\Sender->get_items_to_send() #11 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(484): Automattic\Jetpack\Sync\Sender->do_sync_for_queue() #12 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(359): Automattic\Jetpack\Sync\Sender->do_sync_and_set_delays() #13 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php(739): Automattic\Jetpack\Sync\Sender->do_sync() #14 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php(679): Automattic\Jetpack\Sync\Actions::do_cron_sync_by_type() #15 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(324): Automattic\Jetpack\Sync\Actions::do_cron_sync() #16 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #17 /srv/www/htdocs/mydomainname/wp-includes/plugin.php(565): WP_Hook->do_action() #18 /srv/www/htdocs/mydomainname/wp-cron.php(191): do_action_ref_array() #19 {main} thrown


Do you have any idea how to get rid of this error? Many thanks in advance.

A clear and concise description of what you expected to happen.

No response

What actually happened

No response

Impact

All

Available workarounds?

There is no user impact

Platform (Simple and/or Atomic)

Self-hosted

Logs or notes

For some days now I daily get an error message from Wordpress saying my website has a "technical error".

In the error details it says the following (in German due to my localization):

WordPress-Version 6.5.3 Aktives Theme: OceanWP (Version 3.5.5) Aktuelles Plugin: WP Super Cache (Version 1.12.1) PHP-Version 8.2.18

Fehler-Details

Ein Fehler vom Typ E_ERROR wurde in der Zeile 2937 der Datei /srv/www/htdocs/mydomainname/wp-content/plugins/wp-super-cache/wp-cache.php verursacht. Fehlermeldung: Uncaught TypeError: array_unshift(): Argument #1 ($array) must be of type array, null given in /srv/www/htdocs/mydomainname/wp-content/plugins/wp-super-cache/wp-cache.php:2937 Stack trace: #0 /srv/www/htdocs/mydomainname/wp-content/plugins/wp-super-cache/wp-cache.php(2937): array_unshift() #1 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(326): wp_cache_plugin_actions() #2 /srv/www/htdocs/mydomainname/wp-includes/plugin.php(205): WP_Hook->apply_filters() #3 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php(377): apply_filters() #4 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(324): Automattic\Jetpack\Sync\Modules\Callables->set_plugin_action_links() #5 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #6 /srv/www/htdocs/mydomainname/wp-includes/plugin.php(517): WP_Hook->do_action() #7 /srv/www/htdocs/mydomainname/wp-admin/includes/class-wp-screen.php(424): do_action() #8 /srv/www/htdocs/mydomainname/wp-admin/includes/screen.php(243): WP_Screen->set_current_screen() #9 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(527): set_current_screen() #10 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(629): Automattic\Jetpack\Sync\Sender->get_items_to_send() #11 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(484): Automattic\Jetpack\Sync\Sender->do_sync_for_queue() #12 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php(359): Automattic\Jetpack\Sync\Sender->do_sync_and_set_delays() #13 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php(739): Automattic\Jetpack\Sync\Sender->do_sync() #14 /srv/www/htdocs/mydomainname/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php(679): Automattic\Jetpack\Sync\Actions::do_cron_sync_by_type() #15 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(324): Automattic\Jetpack\Sync\Actions::do_cron_sync() #16 /srv/www/htdocs/mydomainname/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #17 /srv/www/htdocs/mydomainname/wp-includes/plugin.php(565): WP_Hook->do_action() #18 /srv/www/htdocs/mydomainname/wp-cron.php(191): do_action_ref_array() #19 {main} thrown


Do you have any idea how to get rid of this error? Many thanks in advance.

rob-kne avatar May 17 '24 12:05 rob-kne

@rob-kne Many thanks for the report! Could you please provide the version of the Jetpack plugin you are using or try updating Jetpack to the latest version and confirm you are still getting this error?

fgiannar avatar May 21 '24 13:05 fgiannar

I am using the current version 13.4.3 of the Jetpack plugin,

rob-kne avatar May 21 '24 16:05 rob-kne

Adding a note here that I've audited the Sync related part, where we apply the plugin_action_links filter and we ensure that the corresponding $actions argument is an array.

fgiannar avatar May 22 '24 10:05 fgiannar

@rob-kne does this still happen when using WP Super Cache 1.12.3? I couldn't replicate the problem, but I added an is_array() check in #37604. The new version released on Thursday has this fix.

donnchawp avatar Jul 01 '24 13:07 donnchawp

This issue has been marked as stale. This happened because:

  • It has been inactive for the past 6 months.
  • It hasn’t been labeled `[Pri] BLOCKER`, `[Pri] High`, `[Type] Feature Request`, `[Type] Enhancement`, `[Type] Janitorial`, `Good For Community`, `[Type] Good First Bug`, etc.

No further action is needed. But it's worth checking if this ticket has clear reproduction steps and it is still reproducible. Feel free to close this issue if you think it's not valid anymore — if you do, please add a brief explanation.

github-actions[bot] avatar Dec 30 '24 00:12 github-actions[bot]

Closing this for now because of the lack of activity on this. We can always reopen in the future if needed.

jeherve avatar Jan 06 '25 17:01 jeherve