[wp-trac] [WordPress Trac] #57469: retrieve_widgets(): fatal error when a sidebar's widgets set to null (array is expected)
WordPress Trac
noreply at wordpress.org
Thu Sep 11 10:34:30 UTC 2025
#57469: retrieve_widgets(): fatal error when a sidebar's widgets set to null (array
is expected)
--------------------------------------+------------------------------
Reporter: kesselb | Owner: (none)
Type: defect (bug) | Status: reopened
Priority: normal | Milestone: Awaiting Review
Component: Widgets | Version: 4.9
Severity: normal | Resolution:
Keywords: has-patch has-unit-tests | Focuses:
--------------------------------------+------------------------------
Comment (by pmbaldha):
== Test Report
✅ The test report validates that the issue can be reproduced in the
current Trunk branch and the patch is resolving the fatal error.
Patch tested: https://github.com/WordPress/wordpress-develop/pull/9603
=== Environment
- WordPress: 6.9-alpha-60093-src
- PHP: 8.2.29
- Server: nginx/1.29.1
- Database: mysqli (Server: 8.4.6 / Client: mysqlnd 8.2.29)
- Browser: Chrome 140.0.0.0
- OS: Windows 10/11
- Theme: Twenty Seventeen 3.9
- MU Plugins:
* test.php
- Plugins:
* Test Reports 1.2.0
=== Steps to Reproduce or Test
1. Setup a WordPress website.
2. Open PHPMyAdmin and run the below SQL queries:
DELETE FROM `wp_options` WHERE `option_name` = 'sidebars_widgets';
INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`)
VALUES
('sidebars_widgets','a:2:{s:19:"wp_inactive_widgets";N;s:9:"sidebar-1";N;}','yes');
3. 🐞 Open the Admin Dashboard and you will face the error as below:
Fatal error: Uncaught TypeError: array_merge(): Argument #2 must be of
type array, null given in /var/www/src/wp-includes/widgets.php:1354 Stack
trace: #0 /var/www/src/wp-includes/widgets.php(1354): array_merge(Array,
NULL, Array, Array) #1 /var/www/src/wp-includes/widgets.php(1299):
retrieve_widgets(true) #2 /var/www/src/wp-includes/class-wp-hook.php(326):
_wp_sidebars_changed('Twenty Nineteen') #3 /var/www/src/wp-includes/class-
wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #4 /var/www/src/wp-
includes/plugin.php(517): WP_Hook->do_action(Array) #5 /var/www/src/wp-
includes/theme.php(3504): do_action('after_switch_th...', 'Twenty
Nineteen', Object(WP_Theme)) #6 /var/www/src/wp-includes/class-wp-
hook.php(324): check_theme_switched('') #7 /var/www/src/wp-includes/class-
wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #8 /var/www/src/wp-
includes/plugin.php(517): WP_Hook->do_action(Array) #9 /var/www/src/wp-
settings.php(728): do_action('init') #10 /var/www/wp-config.php(107):
require_once('/var/www/src/wp...') #11 /var/www/src/wp-load.php(55):
require_once('/var/www/wp-con...') #12 /var/www/src/wp-
admin/admin.php(35): require_once('/var/www/src/wp...') #13 /var/www/src
/wp-admin/_index.php(10): require_once('/var/www/src/wp...') #14
/var/www/src/wp-admin/index.php(10): require_once('/var/www/src/wp...')
#15 {main} thrown in /var/www/src/wp-includes/widgets.php on line 1354
=== Expected Results
When testing a patch to validate it works as expected:
- ✅ The Admin Dashboard should load without any fatal error.
When reproducing a bug:
- 🐞 Open the Admin Dashboard and you will face the error as below:
Fatal error: Uncaught TypeError: array_merge(): Argument #2 must be of
type array, null given in /var/www/src/wp-includes/widgets.php:1354 Stack
trace: #0 /var/www/src/wp-includes/widgets.php(1354): array_merge(Array,
NULL, Array, Array) #1 /var/www/src/wp-includes/widgets.php(1299):
retrieve_widgets(true) #2 /var/www/src/wp-includes/class-wp-hook.php(326):
_wp_sidebars_changed('Twenty Nineteen') #3 /var/www/src/wp-includes/class-
wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #4 /var/www/src/wp-
includes/plugin.php(517): WP_Hook->do_action(Array) #5 /var/www/src/wp-
includes/theme.php(3504): do_action('after_switch_th...', 'Twenty
Nineteen', Object(WP_Theme)) #6 /var/www/src/wp-includes/class-wp-
hook.php(324): check_theme_switched('') #7 /var/www/src/wp-includes/class-
wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #8 /var/www/src/wp-
includes/plugin.php(517): WP_Hook->do_action(Array) #9 /var/www/src/wp-
settings.php(728): do_action('init') #10 /var/www/wp-config.php(107):
require_once('/var/www/src/wp...') #11 /var/www/src/wp-load.php(55):
require_once('/var/www/wp-con...') #12 /var/www/src/wp-
admin/admin.php(35): require_once('/var/www/src/wp...') #13 /var/www/src
/wp-admin/_index.php(10): require_once('/var/www/src/wp...') #14
/var/www/src/wp-admin/index.php(10): require_once('/var/www/src/wp...')
#15 {main} thrown in /var/www/src/wp-includes/widgets.php on line 1354
==== Actual Results
When reproducing a bug/defect:
- 🐞 The Fatal error occurs.
Fatal error: Uncaught TypeError: array_merge(): Argument #2 must be of
type array, null given in /var/www/src/wp-includes/widgets.php:1354 Stack
trace: #0 /var/www/src/wp-includes/widgets.php(1354): array_merge(Array,
NULL, Array, Array) #1 /var/www/src/wp-includes/widgets.php(1299):
retrieve_widgets(true) #2 /var/www/src/wp-includes/class-wp-hook.php(326):
_wp_sidebars_changed('Twenty Nineteen') #3 /var/www/src/wp-includes/class-
wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #4 /var/www/src/wp-
includes/plugin.php(517): WP_Hook->do_action(Array) #5 /var/www/src/wp-
includes/theme.php(3504): do_action('after_switch_th...', 'Twenty
Nineteen', Object(WP_Theme)) #6 /var/www/src/wp-includes/class-wp-
hook.php(324): check_theme_switched('') #7 /var/www/src/wp-includes/class-
wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #8 /var/www/src/wp-
includes/plugin.php(517): WP_Hook->do_action(Array) #9 /var/www/src/wp-
settings.php(728): do_action('init') #10 /var/www/wp-config.php(107):
require_once('/var/www/src/wp...') #11 /var/www/src/wp-load.php(55):
require_once('/var/www/wp-con...') #12 /var/www/src/wp-
admin/admin.php(35): require_once('/var/www/src/wp...') #13 /var/www/src
/wp-admin/_index.php(10): require_once('/var/www/src/wp...') #14
/var/www/src/wp-admin/index.php(10): require_once('/var/www/src/wp...')
#15 {main} thrown in /var/www/src/wp-includes/widgets.php on line 1354
When testing the bugfix patch:
- ✅ The Fatal error resolved with the patch.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/57469#comment:25>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list