Unattended OS-level security updates feel like they cover "keeping things patched" as a category. They don't cover the actual self-hosted applications running on top of that OS — and one of those apps falling one version behind is exactly what silently broke a real, in-daily-use client one day, with no warning from anything monitoring the server itself.
A self-hosted password manager's browser extensions (Firefox and Chrome) silently stopped populating vault data one day — no error dialog, just an empty-feeling extension — while the web vault and mobile app on the exact same account kept working perfectly fine. The browser extensions auto-update themselves through their respective browser stores, entirely outside anyone's control, and had moved to a client version requiring a newer minimum server version than what was actually running. The fix release that closed that gap had shipped the day before the extensions updated — the self-hosted server was exactly one version behind, and nothing had ever updated it, because nothing was watching for that.
This is easy to miss precisely because "we have automated patching" sounds like a solved problem in general terms — it's worth explicitly asking whether that coverage means the OS, the applications, or both, since the answer is often "just the OS" without anyone having decided that on purpose.
Rather than reaching for a generic "auto-update everything" cron job, the pattern that's held up well:
Once this exists for one application, it's worth explicitly listing every other self-hosted app in your environment and deciding, one by one, whether it belongs in the same automation — rather than assuming "we have auto-updates now" covers anything beyond whatever specifically triggered building it. The whole point of this gap is that it's invisible until something breaks; closing it for one app doesn't close it for the others sitting right next to it, running the same kind of unwatched, manually-updated (or never-updated) software stack.