The following are the same questions, just phrased differently:
Why won't cPanel delete ( prune ) old backups?
Why is my backup retention setting not enforced?
If the newest backup is incomplete, defective, or in some other manner unreliable, the backups will not be pruned. For safety, the backup system does not check whether the backup is acceptable for pruning until after the newest backup job has been completed.
To mitigate this risk of pruning the only reliable backup, cPanel analyzes the outcome of each backup session to determine if a problem occurred during the backup generation. If errors are found within the backup log cPanel will not prune any older backups. This is an all-or-nothing condition. In other words, even if there is a problem with only a single account's backup, none of the older backups for any account will be removed. You can force the system to prune old backups regardless of success by enabling the option to "Strictly enforce retention, regardless of backup success," but this can cause valid backups to be pruned when there are no good replacements for them, so please exercise caution. Backup retention is documented further below.
If backups are not being automatically pruned, you can use the following instructions to find out which errors are preventing cPanel from doing so: