Fixing a readme.txt "Stable tag" mismatch

A Stable tag mismatch is one of the most common notes a WordPress plugin gets during Plugin Directory review, and one of the easiest to introduce by accident: your readme.txt and your plugin's main file each carry their own version string, in two different files, in two different formats, and nothing forces them to move together.

Why it happens

The Plugin Directory serves whichever version readme.txt's Stable tag line names -- not your latest commit, not your latest tag, and not whatever the plugin header says. Bump the version in your main plugin file and forget the matching line in readme.txt (or the reverse) and the two drift apart. Users downloading or auto-updating your plugin keep getting the old build even after you've shipped the new one.

What "correct" looks like

FileLineWhat it controls
readme.txtStable tag: 1.4.2Which tagged version the directory actually serves to users
Main plugin file (PHP header comment)Version: 1.4.2What WordPress core shows in the Plugins screen and uses to detect an available update

The two values should read identically at every release -- or Stable tag may deliberately read trunk, which tells the directory to always serve whatever is in the SVN trunk rather than a tagged release. That's a valid, if less common, choice; it just isn't a version to compare against.

Find it automatically

The checker on this site reads both files and tells you immediately if they disagree, along with the other checks it runs (required readme/header fields, unescaped superglobal output, missing nonce checks on $_POST handlers). It runs as a browser tool (nothing uploaded) or a Node CLI you can add to your own pre-submission or pre-release check.

This is evidence of what the two files currently say, not a determination that Plugin Review will pass in every respect -- see the checker and its disclaimer for what else it can and can't see, and verify against the Plugin Directory's current guidelines before you submit or tag a release.

← Back to the checker