Closed (fixed)
Project:
Drupal core
Version:
11.3.x-dev
Component:
update.module
Priority:
Critical
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
22 Dec 2025 at 16:39 UTC
Updated:
19 Jan 2026 at 11:44 UTC
Jump to comment: Most recent
Comments
Comment #3
catchNeeds testing against a database with the problem.
Comment #4
bertvivie commentedWhen updating from drupal version 11.2.5 to 11.3.1 after testing the update on my local machine where I had no problems the update.php broke on the production server with this error:
Er is een AJAX HTTP fout opgetreden.
HTTP-resultaatcode: 200
Debug informatie volgt.
Pad: /web/update.php/start?id=177&op=do_nojs&op=do
Statustekst: parsererror
Antwoordtekst: TypeError: array_filter(): Argument #1 ($array) must be of type array, null given in array_filter() (line 46 of /var/www/vhosts/redcaps.nl/httpdocs/web/core/modules/update/update.post_update.php).
I put my error at Slack in the support channel and within a few hours @catch made this patch for me.
I installed this patch first local and then pushed it with git on my production server and installed it there.
When running the update.php again it now runs completely to the end
Conclusion: My problem is solved and this patch is tested
Comment #5
catchAdditional testing in slack from @bertvivie found that even after running the update, the update status settings form wouldn't save with
'fetch' is a required fieldwhich suggests all of the update status configuration was corrupted. That was solveable in this case by uninstalling and re-installing, not clear what got the site into this case.I think checking we actually have an array is probably OK here - it will at least result in that key being set if it's wrong, instead of a fatal error that prevents the site update. So moving to needs review.
Comment #6
xamountI had the exact same issue and this was my error on dev:
Just like @bertvivie, the error only occurred when I pushed up it to my dev server. The error did not occur locally.
I'm using config split. So on localhost update.settings.yml exists but on dev/stage/prod update.settings.yml does not exist. That should shed some light on the problem.
So even though the update settings module is enabled on dev, the update.settings.yml may not exist and hence update_post_update_fix_update_emails fails.
The patch makes sense to me to do that check. I applied the patch and it works perfectly.
Comment #7
xamountMaybe the patch can be improved to something like:
if $config = \Drupal::configFactory()->getEditable('update.settings') returns null, do nothing.
Either way the patch works as is or can be improved slightly.
Comment #8
alexpottCommitted and pushed 418d91e75dd to 11.x and ba26af15cc1 to 11.3.x. Thanks!