Wordpress shows I have 1 plugin update, when all plugins are already updated

So I've searched on the forums and although I found a few people with a problem similar to mine, I still haven't found a way to get this fixed. What's going on is that WordPress shows that I have 1 plugin update, when all of my plugins are updated. Below is an imgur link of a screenshot so you can see what I'm talking about:

http://imgur.com/HlspXv7

Now, I've tried several things, including reinstalling WP, and deleting the transients using Artiss Transient Cleaner, yet nothing seems to work. Any ideas on what could possibly be causing this rogue/ghost "plugin" to be requesting an update when there is none? Thanks and I appreciate your help.

Answers


I see this from time to time with premium plugins and themes that require an activation key. The WP UI won't provide anyway to update the plugin or theme, but you'll see the pending update count number in the UI.

To track down the source I use the following function:

/**
 * Debug Pending Updates
 *
 * Crude debugging method that will spit out all pending plugin
 * and theme updates for admin level users when ?debug_updates is
 * added to a /wp-admin/ URL.
 */
function debug_pending_updates() {

    // Rough safety nets
    if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) ) return;
    if ( ! isset( $_GET['debug_updates'] ) ) return;

    $output = "";

    // Check plugins
    $plugin_updates = get_site_transient( 'update_plugins' );
    if ( $plugin_updates && ! empty( $plugin_updates->response ) ) {
        foreach ( $plugin_updates->response as $plugin => $details ) {
            $output .= "<p><strong>Plugin</strong> <u>$plugin</u> is reporting an available update.</p>";
        }
    }

    // Check themes
    wp_update_themes();
    $theme_updates = get_site_transient( 'update_themes' );
    if ( $theme_updates && ! empty( $theme_updates->response ) ) {
        foreach ( $theme_updates->response as $theme => $details ) {
            $output .= "<p><strong>Theme</strong> <u>$theme</u> is reporting an available update.</p>";
        }
    }

    if ( empty( $output ) ) $output = "No pending updates found in the database.";

    wp_die( $output );
}
add_action( 'init', 'debug_pending_updates' );

Add that to your theme's functions.php file then visit a page with ?debug_updates added to the URL. For example: yourdomain.com/wp-admin/?debug_updates. This should show you any theme or plugin that's causing the issue.


I had this issue, and it was that a new translation was available (which is not obvious from the Updates page, you have to go into Update Translations at the bottom);

after updating the transations... the warning was gone;


An expired Yoast Premium plugin was the culprit, so I deactived and reactived it and that resolved the update issue.


Slightly modified version of Kevin's answer that doesn't require adding parameters to URL. It simply hooks into update-core right after Plugins, Themes and Translations and displays the list of updates.

/**
 * Debug Pending Updates
 *
 * Displays hidden plugin and theme updates on update-core screen.
 */
function debug_pending_updates() {

  // Rough safety nets
  if ( ! is_user_logged_in() || ! current_user_can( 'update_plugins' ) || ! current_user_can( 'update_themes' ) ) return;

  $output = "";

  // Check plugins
  $plugin_updates = get_site_transient( 'update_plugins' );
  if ( $plugin_updates && ! empty( $plugin_updates->response ) ) {
    foreach ( $plugin_updates->response as $plugin => $details ) {
      $output .= "<p><strong>Plugin</strong> <u>$plugin</u> is reporting an available update.</p>";
    }
  }

  // Check themes
  wp_update_themes();
  $theme_updates = get_site_transient( 'update_themes' );
  if ( $theme_updates && ! empty( $theme_updates->response ) ) {
    foreach ( $theme_updates->response as $theme => $details ) {
      $output .= "<p><strong>Theme</strong> <u>$theme</u> is reporting an available update.</p>";
    }
  }

  if ( empty( $output ) ) $output = "No pending updates found in the database.";

  echo "<h2>Pending updates</h2>" . $output;
}
add_action( 'core_upgrade_preamble', 'debug_pending_updates' );

I've had the same problem in a Wordpress 5.0.1 installation. In my case it has been the Formidable Premium pluging which causes this. The formidable support team sent also a message, because things have changed on there side, here is their message:

Hi ,

As some of you may know, we updated the licensing software on our
site a few months ago. This meant we had to move all of the
licensing information to a new format. Unfortunately, this caused
some of the custom site limits to be reduced for add-ons that
weren’t bundled with a grandfathered license. 

We had a few people understandably ask us about this. Our solution
was that they could manually upgrade to a bundle, which would solve
the problem.  

However, over the last month we were made aware that some people
were upset with the reduction in limits, but hadn’t contacted us
about it.  

As a result, we set to work and moved everyone with a Business or
Enterprise license over to a bundle that would automatically correct
the issue.  

I want to take this opportunity to apologize for the trouble we may
have caused, and that we didn’t realize sooner that so many people
had been negatively affected. I would also like to reassure you that
we never intend to remove a grandfathered benefit from your account.


I hope you were not among the group that lost faith in us over this
issue. While we will always aim to resolve issues as soon as they
occur, we would ask that if you ever run into another problem, that
you contact us about it first. That way, we can rectify the problem
and reduce the trouble it causes you.

So it might be very often in case a plugin is changing the way to accès to the api of the developper.

Best Regards, Norbert


I experienced this problem and found that W3 Total Cache was the culprit. Deactivating and reactivating the plugin cured the problem. Hat tip to this forum for the clue.


most of the times it's happening with premium plugins. so Deactivate plugins one by one until notification disappear and reactive again. then problem will solve.


If you have FTP access, look in the plugins folder and make sure that you have X number, which matches with the ones showing up in Wordpress. Maybe you have one which is broken, so it's still in detecting it but it's not properly formatting it so it's not showing in Wordpress.

If you don't have FTP access you can still see the files by going to Plugins>Editor and looking at the dropdown in the upper right hand corner.


Need Your Help

Change Jupyter QtConsole settings

python jupyter

It is possible to make persistent changes to settings for default settings on Windows 7?