update_status_kv_flush
Fixes a common problem where Drupal's update status page shows "No release history available" after a Redis restart or queue flush. Detects the desync automatically and provides a one-click fix.
Features
Drupal tracks which modules need update checks using two separate stores: a database-backed key-value store and a queue (often Redis-backed). When Redis is flushed or restarted, the queue is wiped but the database entries remain. On the next cron run, Drupal sees all projects already listed in the database and skips re-queuing them — so no update check ever runs, and admin/reports/updates shows "No release history available" for most or all modules.
This module:
- Detects the desync automatically on the Status report (
admin/reports/status) - Shows an error-level entry with a one-click fix link when the problem is present
- Shows an OK status when everything is in sync (no noise when things are healthy)
- Clears the stale database entries so Drupal can re-queue projects on the next cron run
Use this module if your site uses a Redis queue backend and you have ever seen update status become permanently stuck after a Redis restart or FLUSHALL.
Post-Installation
No configuration is needed. Once enabled, the module runs silently in the background.
If a desync is detected, an error entry titled "Update fetch task store" will appear on admin/reports/status with a "Clear the update fetch task store" link. Click the link, then go to admin/reports/updates and click "Check manually" to trigger an immediate re-fetch. You can also simply wait for the next cron run.
When everything is healthy, the status report shows an OK entry confirming the KV store and queue are in sync.
Additional Requirements
- Drupal core Update module (enabled by default in most Drupal installations)
- Drupal 10 or 11
No additional libraries or APIs are required. The module is most useful on sites that use a Redis-backed queue (e.g. via the Redis module), but it works on any Drupal installation.
Recommended modules/libraries
- Redis — the queue backend most likely to trigger this problem. Using this module alongside Redis gives you automatic detection if a desync occurs.