Install

Works with Drupal: ^10.3 || ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 59.63 KB
MD5: e0edfadd03067aadd4e8064da3ac946e
SHA-1: f4d0bf7a197694ceaa32824d76a17da5b9c8e387
SHA-256: e776cd605b5b4c4cc82fe101f262174a8095a4e9ac4206a5c7636dc6350e8be5
Download zip 98.91 KB
MD5: c6968b7855184410e720149140b345d6
SHA-1: d133e7a178cf132e15ca3f1d62640f9e520d7235
SHA-256: 95f5206f170a8b136b7c47876faedddd10bda0dea84619cf54b974f849eceaff

Release notes

Highlights

  • Multilingual translation safety: Revisions that are the active revision for a translation can no longer be accidentally deleted, preventing translation data loss on multilingual sites.
  • Major performance improvements: The queue worker and batch operations now use entity queries instead of loading full revision entities, dramatically reducing memory usage and database load on sites with many revisions.
  • Prior revision deletion reworked: The "delete prior revisions" UI and batch now process revisions in bulk with a configurable threshold, caps the form display to 20 revisions to prevent out-of-memory errors, and correctly reports skipped revisions (default or active for another language).
  • Time-based requeuing: Nodes with time-protected revisions are now automatically requeued for future processing, ensuring revisions are deleted once they age out. The Drafts plugin now supports this.
  • Cron performance: The cron time allocation for the queue worker has been reduced to avoid long-running cron jobs.

Changes

Bug fixes

#3543480: Revision translation affected for more than one language could lost translation
#3167246: "Delete prior revisions" doesn't work if site builder uses "Account administration pages"
#3363362: Error: Call to a member function getTranslationLanguages() on null in Drupal\node_revision_delete\Plugin\QueueWorker\NodeRevisionDelete->processItem()
#3512434: Outdated revisions are not added to queue unless they are resaved
#3425134: Cannot remove Overridden Setting for a content type
#3583390: Revision translation affected for more than one language can be deleted by delete prior revisions functionality
#3584872: Prior revision deletion form can easily cause out-of-memory errors
#3586441: Requeue of time protected only nodes uses the highest time protected only revision when it should use the lowest
#3585263: Unable to save content types when not overriding number of revisions

Performance

#3508327: Batch to add all nodes to queue loads all nodes at once.
#3581256: Performance: do not load revisions unless you have to

Tasks and improvements

#3582718: Name Drush commands consistently so both commands appear in their own section together
#3583397: Requeuing nodes from UI improvements
#3583398: Drafts plugin should implement NodeRevisionDeleteTimeBasedInterface
#3584331: The cron time for the node revision delete queue is extremely long
#3584692: Consistent strtotime('-2 months')
#3584695: Fix grammar issues in \Drupal\node_revision_delete\NodeRevisionDeleteBatch
#3584698: Use formatPlural for month strings in selector
#3584706: Small improvements
#3586447: Expand \Drupal\node_revision_delete\Plugin\NodeRevisionDeleteQueryInterface to pass the node to the two methods to allow plugins easy access to the default revision entity

Created by: alexpott
Created on: 23 Apr 2026 at 10:47 UTC
Last updated: 23 Apr 2026 at 10:48 UTC
Bug fixes
New features

Other releases