--skip-plugins is ignored on WordPress 7.0.4 and higher under specific circumstances.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start by reproducing the three listed commands with a premium plugin lacking a valid license on WordPress 7.0.4 or 7.1, then compare the first and second --skip-plugins runs. Done means repeated runs report the same failed update result instead of incorrectly reporting that the plugin is already updated.
Written by the indexing model from the issue text.
Description
Bug Report
- Yes, I reviewed the contribution guidelines.
- Yes, more specifically, I reviewed the guidelines on how to write clear bug reports.
Describe the current, buggy behavior
We have automated updates using WP-CLI on our hosting-cluster. We notice that since August 20th, this behaviour is occurring on a lot of sites of customer that have built their sites with a premium plugin but lack a valid license or have an expired license.
How it occurs
Every night we run several wp-cli commands to deploy updates of plugins and themes. We use WP-CLI for this, obviously.
# wp plugin update js_composer
Onderhoudsmodus inschakelen...
Warning: Update pakket niet beschikbaar.
Onderhoudsmodus uitschakelen...
+-------------+-------------+-------------+--------+
| name | old_version | new_version | status |
+-------------+-------------+-------------+--------+
| js_composer | 8.3.1 | 9.0.1 | Error |
+-------------+-------------+-------------+--------+
Error: No plugins updated (1 failed).
So at this point, to ensure we do not hit a blocking factor due to a plugin conflict, we'll repeat the command with the --skip-plugins option:
# wp plugin update js_composer --skip-plugins
Onderhoudsmodus inschakelen...
Warning: Update pakket niet beschikbaar.
Onderhoudsmodus deactiveren...
+-------------+-------------+-------------+--------+
| name | old_version | new_version | status |
+-------------+-------------+-------------+--------+
| js_composer | 8.3.1 | 9.0.1 | Error |
+-------------+-------------+-------------+--------+
Error: No plugins updated (1 failed).
Now here's the weird thing. If you then run that same command again, this suddenly declares that the plugin did update (even when it did not):
Success: Plugin already updated.
This only occurs on the second time you run the same command with the --skip-plugins option.
We have seen this occur consistently on several premium plugins in combination with WordPress 7.0.4 or 7.1. We did not see this behaviour in combination with earlier versions of core.
Describe how other contributors can replicate this bug
To replicate you'll need these things:
- a premium plugin (WPBakery Page Builder, Elementor Pro) that has an update available, but has no valid license.
- WordPress 7.0.4 or 7.1
How to replicate:
(for this example I'll assume you are also testing with js_composer, update your plugin name accordingly when testing with another plugin)
- Run: wp plugin update js_composer
- Run: wp plugin update js_composer --skip-plugins
- Run: wp plugin update js_composer --skip-plugins
Expected outcome
The first two commands will result in:
Error: No plugins updated (1 failed).
The third command will result in:
Success: Plugin already updated.
Let us know what environment you are running this on
# wp cli info
OS: Linux 6.1.182-hcl #deb11 SMP Fri Aug 7 06:55:11 UTC 2026 x86_64
Shell: /bin/bash
PHP binary: /usr/local/php-7.4/bin/php
PHP version: 7.4.33
php.ini used: /data/jail/usr/local/php-7.4/etc/php.ini
MySQL binary: /usr/local/bin/mysql
MySQL version: mysql Ver 14.14 Distrib 5.7.44-57, for debian-linux-gnu (x86_64) using 8.1
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: phar:///usr/bin/wp
WP-CLI packages dir: /data/sites/web/REDACTED/.wp-cli/packages/
WP-CLI cache dir: /data/sites/web/REDACTED/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.12.0
Sadly I'm not able to provide a solution just yet, as I am still trying to figure out where the cause originates.
- Dominant language
- Gherkin
- Stars
- 90
- Forks
- 88
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 6
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from wp-cli/extension-command
-
command:plugin-update command:theme-update
Difficulty 4/5 3-5 days Newbie friendliness 48/100
wp-cli/extension-command#555 ·
-
opcache invalidation Opencommand:plugin-update command:theme-update
wp-cli/extension-command#444 · 10 comments · 1 reaction · 2 assignees ·
-
command:theme state:unconfirmed
wp-cli/extension-command#392 · 9 comments · 1 reaction · 2 assignees ·
All issues in wp-cli/extension-command
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
from:qa priority:P2 reliability tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
spec-kitty/spec-kitty#4874 ·
-
0. Needs triage bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
nextcloud/fulltextsearch#1011 ·
-
automation code-quality cookie deep-report documentation improvement quick-win task-mining
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100