Legacy Module Removal

From WHMCS Documentation

This page describes a feature available in version 7.5 and above.
If you were directed to this page via an email notification, then please refer to the Handling Notifications section.

Old PHP code may introduce breakage on newer versions of PHP runtime. In order to protect your system from unexpected downtime, WHMCS 7.5 and newer will perform an inspection for any unused legacy modules. Legacy modules are modules that are no longer maintained or distributed and are typically for older and often discontinued services.

Inspection Process

During updates, WHMCS will check for modules that are no longer officially maintained or supported. If a module is activated and configured then that module will be considered to be in use, and WHMCS will not attempt to delete that module.

Deletion & Notification Process

Following the inspection WHMCS will attempt to perform outdated module deletion. There may be three possible outcomes:

  1. A legacy module is found to be unused and is successfully deleted. A log entry starting with "Unused legacy modules were deleted" will be created, and will contain a comma separated list of the modules that were deleted. An email message will be sent to notify system administrators of the modules that were deleted.
  2. A legacy module is found to be in use and is not attempted for deletion. A log entry starting with "One or more legacy modules were found to be in use and were not attempted to be deleted" will be created, and will contain a comma separated list of the modules that were unable to be deleted. An email message will be sent to notify system administrators of this condition.
  3. A legacy module is found to be unused and deletion is attempted, but the deletion fails (e.g. due to insufficient permissions or a filesystem issue). A log entry starting with "One or more legacy modules could not be deleted" will be created, and will contain a comma separated list of the modules that were unable to be deleted. An email message will be sent to notify system administrators of this condition.

Handling Notifications

Want a walk through? Check out our Guides and Tutorials page on this topic!

Should you receive an email concerning legacy modules found to be in use, then the recommended action is to contact the module author and determine if there is an update available for the module in question.

Should you receive an email concerning unused legacy modules that were not able to be deleted, then it is recommended to investigate and finalize module removal manually as the module state may be inconsistent due to potentially partial deletion.

Once all modules in the received email have been addressed, either by manual deletion or by contacting the module author, then we would recommend using the PHP Version Compatibility Assessment utility to help locate any other files that may negatively affect WHMCS.

Handling a Failed Removal

If removal fails, you will see the following message in an email notification or in the Activity Log at Configuration () > System Logs or, prior to WHMCS 8.0, Utilities > Activity Log:

A recent WHMCS update failed to remove legacy modules. These modules may cause
negative behavior if you upgrade PHP and leave them on the system.

We recommend working to remove them manually.

This typically occurs due to one of the following reasons:

  • The Automatic Updater utility detected that the module is currently active and configured in WHMCS. Because of this, the system treated the module as being in use.
  • The Automatic Updater utility could not delete the module's files due to permission restrictions.

If this occurs, you will need to remove the affected modules manually. The method to do this depends on the type of module. For more information, see Troubleshooting A Failed to remove legacy modules Error.