On the status report, if you have uninstalled the Update module you will get a big scary warning:
Update notifications are not enabled. It is highly recommended that you enable the Update Manager module...
There are many situations where it's perfectly reasonable to disable the update module, such as in an enterprise environment where you monitor for updates via other dedicated means and don't want the performance impact of having Update enabled in production. In these cases, the warning is just a distraction and contributes to a "crying wolf" mentality.
Ideally, there would be a way for expert administrators to disable this warning.
Proposed Approaches to Resolving the Issue:
- Core setting via
settings.php
Add a flag like$settings['update_warning_disable'] = TRUE;to suppress the warning. Simple but not favored by maintainers due to policy and config management concerns. - Downgrade warning severity in core
Change the status report message from "warning" to "info". Rejected by release managers as a security risk. - Use a contrib module
The Update Notifications Disable module attempts to hide the warning, but has architectural issues and clashes with core naming. - Add general suppressor config
A generalized config like$settings['suppress_status_report'] = ['system.update_status'];would allow selectively hiding warnings. - Use hook_requirements_alter() (Recommended workaround)
Now supported in core, this allows contrib/custom modules to programmatically alter or remove status report messages.
Summary of the Issue:
When the Update Manager module is uninstalled in Drupal, the Status Report displays a high-severity warning:
"Update notifications are not enabled. It is highly recommended that you enable the Update Manager module..."
This warning appears even in enterprise environments where updates are monitored externally via automation or third-party tools. In such contexts, this warning is considered unnecessary and can contribute to alert fatigue.
Compounding the problem: The Lightning distribution relies on a patch to suppress this warning. As Drupal core evolves, this patch needs to be re-rolled frequently (e.g., for versions 9.x, 10.x, 11.x). This creates a maintenance burden for teams using Lightning and highlights the need for a sustainable, officially supported solution.
Workarounds to Avoid Re-rolling the Patch:
1. Use hook_requirements_alter() in a Custom Module (Recommended)
Since #309040 was committed, you can now alter status report messages using hook_requirements_alter().
function mymodule_requirements_alter(&$requirements, $phase) { if ($phase === 'runtime' && isset($requirements['update_core'])) { unset($requirements['update_core']); // Or downgrade severity } }
- Pros: No patching needed, Composer-compatible, clean and sustainable.
- Cons: Requires custom code.
2. Use patches-ignore in composer.json
"patches-ignore": { "drupal/lightning_core": { "drupal/core": { "2869592 - Disabled update module warning": "https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch" } } }
- Pros: Avoids errors from outdated patches.
- Cons: Does not suppress the warning.
3. Remove Patch and Accept the Warning
If you use external monitoring and can tolerate the warning, you might remove the patch altogether.
- Pros: Simple, low maintenance.
- Cons: Warning remains visible in production.
Recommended Solution:
Use a custom module implementing hook_requirements_alter() to suppress the warning only in environments where Update module is intentionally disabled. This approach avoids patching, works with Lightning, and is sustainable long-term.
| Comment | File | Size | Author |
|---|---|---|---|
| #87 | 2869592-disabled-update-module-d11.patch | 1003 bytes | andrelzgava |
| #85 | 2869592-disabled-update-module-85.patch | 979 bytes | bala_28 |
Issue fork drupal-2869592
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
danepowell commentedThis patch adds a flag that can be used via settings.php to disable the warning.
Comment #3
danepowell commentedThis patch is identical to #2 but without the modifications to default.settings.php, which is applicable to composer-based installs.
Comment #4
danepowell commentedThis could also be fixed by #2877128: [META] Evaluate status report warnings and determine which should be reduced to info, removed, etc.
Comment #5
danepowell commentedComment #6
Anonymous (not verified) commentedIMHO, that the amount of danger of such an opportunity greatly exceeds the possible benefits.
I hope the enterprise developers сan solve case from IS without the solution out of the box. And I hope that the problem with updates will be solved through simplification (like #606592: Allow updating core with the update manager), not through ignoring :)
Comment #7
japerryIn general, core doesn't know the context of where update module is being used. This is something the site builder and then owner should be taking control over.
It would be okay if this was informational, but shouldn't be a warning. My patch removes it from the warnings list.
Comment #8
danepowell commentedI guess I'd prefer the approach in #7 since it solves this without requiring user intervention, although it is more of a functional change than what I proposed in #2.
Comment #9
danepowell commentedComment #10
alexpottWhat is the performance impact of Update being enabled in production? By default it only checks once per day and you can disable extension checking too.
I think we might need security team, release manager and product manager thoughts before changing this.
I think if the use-case for uninstalling Update can be made then maybe having a setting that's not the default might be the way to go - although I'm not convinced. In fact, the whole being able to disable update checking is weird. I think we should be able to stop automated checking but still leave a button around for people to do a manual check.
Comment #11
xjmSomehow this didn't make it into the issue yet, but @catch pointed out that https://www.drupal.org/project/update_notifications_disable exists for this purpose. I think I'd suggest porting that to Drupal 8 instead of doing this in core.
Comment #12
danepowell commentedThat module is an okay workaround, but I agree with japerry in his comment here that core is fundamentally abusing the use of warnings, and it's a problem that should be solved in core, not just worked around. The best solution in my mind would be to reduce the severity of the warnings to info messages. That's not something solved by a contrib module.
Comment #13
xjm@Dane Powell, I agree in general about not having bad warnings, but disagree about update status in particular. Having update status turned off should be a warning, because you will miss the most serious warning your site can give you, which is a security update being required.
Comment #14
catchI strongly disagree with downgrading to info, we have thousands of sites running outdated and insecure versions of core and contrib modules. Update status and this warning obviously isn't fixing that issue, but removing the strong encouragement to enable it isn't going to help.
I don't see the problem with installing update_notifications_disable. Could possibly live with adding an override to $settings though so not marking by design just yet.
Comment #15
japerryThere are 4 reasons (I can think of) why update module may need to be disabled:
Warnings should be reserved for universal issues affecting your site functionality and that are actionable. IMHO it should not be used to pester people to do certain things. Having update enabled by default with the shipped profiles is a good idea, and possibly throwing a warning when trying to disable it. But once a decision is made to disable it, the site shouldn't be reminding the user. (See #2880374: Experimental modules and themes should not have warnings after being installed, #2877128: [META] Evaluate status report warnings and determine which should be reduced to info, removed, etc., and #2766491: Update status should indicate whether installed contributed projects receive security coverage for more discussion)
Comment #18
anavarreI wholeheartedly agree with this proposal.
#15 says:
Spot on. Many, many sites are just being upgraded automatically (Pantheon in the managed Drupal world, but also plenty of web hosts with one-click install / updates) and/or have different channels anyway (RSS/Twitter, monitoring service, Acquia Remote Administration, Tag1's QUO, etc.) to know when an update is required.
#10
I've seen many times Update Manager's outbound requests hanging and causing issues on sites with high-traffic in particular. Granted it was more in the D6/D7 days but unless Symfony improved things it could still be happening.
I support that. It's a good trade-off with uninstalling the module altogether. Stopping automated checking could also come with a big fat warning asking you if you're really sure what you're about to do. We all need to keep in mind if they can, they will. Unless you shutdown Drupal saying you need to update now, many people won't update because they don't have to. It's like having 123456 as the most used password in 2017.
#15
True, but the main reason I've seen users aren't upgrading is due to the complexity of managing Composer dependencies (and probably also minor versions scaring people a lot, e.g. WBM => content_moderation). I'm seeing this every. single. day. As a matter of a fact I've never seen as many outdated sites as with D8.
Comment #20
rosk0I really like #2 patch approach because it make it possible to choose the behaviour. All sites that we host for our clients are not allowed to talk to the Internet directly and updates are monitored separately, so removing this warning from production environments would be a good thing.
Comment #21
rosk0Reroll of #2 for 8.7.x.
Comment #22
chi commentedComment #23
martijn de witversion bump
Comment #24
meenakshig commentedComment #26
meenakshig commentedComment #27
ressaThe patch works fine, and allows disabling the warning message, if the Update module has been disabled:
Default
Update warning message disabled via settings.php
Comment #28
chi commentedBesides Update module there are many other use cases to suppress warnings in status report. With the current approach we may end up with a bunch of such settings, one for each warning. Why not just add a more general setting to suppress any type of warnings?
Something like this.
Comment #29
cheng75 commentedreverted:
--- b/core/assets/scaffold/files/default.settings.php
+++ a/core/assets/scaffold/files/default.settings.php
@@ -291,15 +291,6 @@
*/
$settings['update_free_access'] = FALSE;
-/**
- * Disable update notifications warning.
- *
- * If you have intentionally uninstalled the update module and are monitoring
- * for updates via another method, you can use this flag to disable the
- * warning about the disabled module on the status report.
- */
-$settings['update_warning_disable'] = FALSE;
-
/**
* External access proxy settings:
*
Comment #30
cheng75 commentedreverted:
--- b/core/assets/scaffold/files/default.settings.php
+++ a/core/assets/scaffold/files/default.settings.php
@@ -291,15 +291,6 @@
*/
$settings['update_free_access'] = FALSE;
-/**
- * Disable update notifications warning.
- *
- * If you have intentionally uninstalled the update module and are monitoring
- * for updates via another method, you can use this flag to disable the
- * warning about the disabled module on the status report.
- */
-$settings['update_warning_disable'] = FALSE;
-
/**
* External access proxy settings:
*
Comment #31
alexpott#28 seems like a really good idea. I think actually this could be something that is in configuration and not settings.php - because then it'd be simple for someone to build a UI in contrib that let's you configure which warnings you are ignoring from the system report page.
Comment #32
maliknaik commentedComment #33
oknateNeeds a reroll
Comment #34
oknateReroll of #7, used by lightning_core.
Comment #36
torotil commentedHere is a backport of #7 to Drupal 7.
Comment #37
jamesoakleyPerhaps I can add one more use case that hasn't been mentioned yet. Do say if there's a better way to solve my issue.
I want to force updating modules through composer. Having the update module enabled means someone could update one in production environment via the UI. Bad. So I want to disable update notifications in production but have it enabled in development and staging, with Cron running in at least one of those so I get emailed.
Comment #39
xjmThis issue is still missing a case for what's wrong with just using the contrib module for sites/platforms where suppressing the warning is desirable. I'm not totally opposed to a config option, but it's not clear why a secret config flag is needed over the existing contrib solution.
Comment #40
xjmAlso, both release managers have indicated that we're not comfortable simply nerfing the warning to an info message, so removing credit for rerolls of that approach since we documented that. Thanks!
Comment #41
jamesoakleyHaving a solution in contrib could well be the optimal way forwards here.
However the Update Notifications Disable module is not that solution IMO.
The way it works is by having its files all named
update(update.info,update.module). The module name is Update Notifications Disable, so a human sees that in the list of installed modules for the site. But a machine sees that there is a contrib module named "update", which masks and overrides any core module with the same name. Any attempt to enable core's update notifications enables the contrib one instead. So it makes it impossible to enable core update.There are all kinds of reasons why I wouldn't use this approach on any site I maintain.
onlyin development (composer require --dev), but there doesn't appear to be a switch to only include when not in dev. I could hack that (withpost-install-cmd, or similar), but I'd then have a module present in production but not in development or staging. I would not be able to test changes before deploying. So, this module also does not work along the grain of good composer staged deployment practice.So, yes, let's solve this in contrib rather than core. But if that's the way forwards, let's do it the Drupal way, invoking a hook that modifies the status of this message from warning to informational. Does such a hook exist? If so, I'd gladly write the module.
Comment #46
hswong3i commentedPR created for #84
Comment #47
jamesoakleyThanks for the patch, although what it does is simply downgrade the warning to information for all sites at all times. I'm pretty sure the consensus from comment #14 onwards has been that this poses a security risk, and we need a solution that is either configurable or comes from contrib. I suspect the reason this has made little headway is that we (the community, and specifically the core maintainers) need to agree which approach is preferred. It may also be that this is not causing a problem for many of the more experience core developers, so the debate has lacked traction so far, but I may be wrong about that.
Either way: We need to discuss and agree the desired approach, then code it.
Comment #48
eelkeblokComment #49
eelkeblokTo be able to do this properly in contrib, I think #309040: Add hook_requirements_alter() is required, but that itself seems to have some issues. I think #41 explains well why https://www.drupal.org/project/update_notifications_disable doesn't cut the mustard.
This suggest to me that #28/#31 is the way forward.
Comment #51
alina.basarabeanu commentedPatch #36 is working on drupal/core (9.4.2)
Comment #52
rakhi soni commentedAttached rerolled patch against Drupal Version 9.5x,,
Kindly review patch,,
Comment #53
samlerner commentedPatch #32 has been working for me on several Drupal 9.4.x sites, works great.
Comment #54
bnjmnmStill needs work per #47
Comment #56
chi commented#309040: Add hook_requirements_alter() just landed. It is much easier now to suppress this warning.
Comment #58
ravi.shankar commentedRebased the current MR as that is not mergeable.
Comment #59
klonosI agree with this direction proposed in the issue summary. Instead of downgrading the warning for everyone, wouldn't it be better to provide something like a switch in settings.php that admins and people in corporate, centrally-managed SaaS hosting situations could use to downgrade/disable this?
Comment #60
xjmRemoving credit for maintaining an MR that implements an approach we've already indicated is not acceptable by the release managers as per #39 and #40. Thanks!
Also, the fact that the contributed module may have some issues with it is a problem with that contributed module, not a reason to remove intentional security warnings from core.
Once autoupdates is in core, we should probably replace the current warning with a warning about autoupdates not being enabled. I could see that warning having a no-UI config option to disable the warning for hosting platforms where autoupdates is done on a staging environment or as part of a custom deployment workflow. It might be best to create a new issue for core autoupdates for that as part of the UX gate, and close this as a duplicate once it exists. Thanks!
Comment #62
smitghelani commentedRe-roll for Drupal 10.3.x.
Comment #63
smitghelani commentedRe-roll for 10.3.x branch, above one has little issue in finding file.
Comment #64
solideogloria commentedAll issues should target the 11.x branch.
Comment #65
solideogloria commentedIn addition, there is a merge request open, so please refrain from making changes by submitting patches. It's hard to see what changed without an interdiff, and it creates confusion to have both patches and a MR.
Comment #66
pooja_sharma commentedFacing issues here, not getting edit button while trying to target existing MR against 11.x
Even facing issue while creating new branch against 11.x :


Not able to search branch 11.x
Already 11.x selected however when create new button, getting error:
Failed to create branch '2869592-disabled-update-module-status': invalid reference name '11.x'
Comment #68
quietone commented@smitghelani, @solideogloria, @pooja_sharma, @hswong3i. It is an important part of working on an issue to read the comments and the issue tags to determine what to do. Not all issues at needs work needs an MR updated. And comment #39 and #40 explained that the approach here is not acceptable. This was stated again in #60. The work here is an issue summary update and to provide the information asked for in #39.
Comment #69
pooja_sharma commentedOkay @quietone got your concerns, Thanks for flagging it out along with constructive feedback, recently I just have started exploring contribution. As this issue comments are too long due to which some comments that needs to be addressed remain unnoticed unintentionally, however try to make it sure contribute meaningfully in the right direction
I agree with #39 & #40, maybe it's best to think of something else instead of hide the warnings information from core itself, especially from a security perspective where transparency & awareness of potential risks are crucial.
If this request still needs, then I believe suggested one contrib module approach 'll fit well in this scenario.
Comment #70
esod commentedReroll for Drupal 10.2.7
Comment #71
adinac commentedRe-roll for Drupal 10.3.1
Comment #72
bala_28 commentedAdding new patch for 10.3.5
Comment #73
smitghelani commentedHi @quietone,
I understood all the concerns mentioned in old chats, but it was necessary step required in lightning_core module, as it is added as dependency patch and not working with latest Drupal versions like 10.3.x and 11.x. So, for time being or i can say till we find alternative and most promising solution for this issue, we need something to keep this thing running in our project as it is.
So, that's why added new patch to replace it in lightning_core. But, lightning_core is still bottle neck with this issue and merge request with replaced patch is also in pending to merge. So, looks like I need to find some alternative options to get rid of it.
Comment #74
interactivex commentedHi @smitghelani,
I had the same problem with an older site with the Lightning distro on and I fixed it by adding this in my composer file:
"patches-ignore": {
"drupal/lightning_core": {
"drupal/core": {
"2869592 - Disabled update module shouldn't produce a status report warning": "https://www.drupal.org/files/issues/2869592-remove-update-warning-7.patch"
}
}
}
Hope that helps you!
Comment #75
edgarjr commentedRe-roll for Drupal 11.0.6
Comment #76
hosterholzRerolled to 11.x
Comment #77
the_g_bomb commentedComment #78
the_g_bomb commentedComment #79
dwwGiven #309040: Add hook_requirements_alter() is in core since 9.5.x and up, seems the update_notifications_disable contrib could be ported to use that mechanism to suppress or alter the warning, not the problematic methodology it used per the summary here.
I’d strongly be in favor of closing this as “works as designed”
Comment #80
solideogloria commentedPrior post:
Never mind. I re-read the issue summary and see what the contrib module is attempting to solve. Still, I'm not in favor of closing this until there's a workable solution.
Comment #81
dww@solideogloria: I think you misunderstand my point and the intention of that contrib module. It (was?) is implemented using a methodology that might have been necessary pre 9.5.0 core, but which has various problems. There's a better way now. If that contrib was ported to modern Drupal and used
hook_requirements_alter(), it would actually do what it's supposed to - silence this warning. That's the whole point why that contrib module exists. So if you're in one of the use cases from comment #15 (or any other use case) where silencing this warning is actually a good move, install the (updated, and working properly) contrib module, once it has a new release. 😅But we don't want to change this behavior in core, for all the reasons the release managers have already written (and which I fully support).
Comment #82
dwwOpened #3523667: Use hook_requirements_alter() to only silence the warning, not take over the whole update.module namespace for the better solution to this problem.
Comment #83
dww#3523667: Use hook_requirements_alter() to only silence the warning, not take over the whole update.module namespace now has a working MR for a new branch. See also #3523761: Add dww as a co-maintainer for the 2.0.x branch. Or, I could move it into a whole new contrib project, something like
update_hide_uninstalled_warningor something.Comment #84
dwwhttps://www.drupal.org/project/update_notifications_disable/releases/2.0... is now out.
Comment #85
bala_28 commentedAdding new patch for 10.4.7
Comment #86
the_g_bomb commentedIn order to stop having to keep creating patches you can do this instead:
Comment #87
andrelzgava commentedI'm uploading a new patch, this make it compatible with drupal 11.2.0-rc2
Comment #88
xjmPlease use the contributed module instead of continuing to post patches on this closed issue. Thanks!
Comment #89
xjmSaving credits for a few folks that helped manage the issue discussion here, and then locking the issue to prevent further patches from being posted. If you think the functionality of the contrib module needs improvement, please file issues against it instead of core. Thanks everyone!
Comment #90
xjm