Developer Advisory: WooCommerce 8.8.1 – potential conflict with old Action Scheduler versions

Update April 17: WooCommerce 8.8 has been released as WooCommerce 8.8.2. Learn more here.

Between approximately 14:43 and 15:16 UTC, WooCommerce 8.8.1 was briefly set as the stable version on WordPress.org. During this time, some sites may have automatically updated to WooCommerce 8.8.1.

The version that was released includes a potential conflict with older Action Scheduler versions that other plugins load in a non-standard way. We are currently working on a stable version of WooCommerce 8.8 and will update the community as soon as it is ready.

The details

WooCommerce 8.8.1 introduced some code in this commit that is dependent on Action Scheduler version 3.3 or newer (released over two years ago). WooCommerce 8.8 comes bundled with Action Scheduler 3.7.0.

In general, the latest version of Action Scheduler should take priority when multiple versions are installed on a WordPress site. However, we identified that some plugins load their version of Action Scheduler in a non-standard way, resulting in a conflict. One specific example we identified was WP Mail SMTP version 2.8.0 – this is an old version, and all versions released after February 2022 do not have this issue.

As the code identified as causing this issue runs on every wp-admin page load, when this conflict occurs, it results in a fatal error. This error prevents wp-admin from being accessed.

This version of WooCommerce 8.8.1 was released to WordPress.org and marked as stable for approximately thirty minutes before being reverted.

How can I tell if this affects me?

Not all stores with automatic WooCommerce updates enabled are affected by this issue.
If you are able to load your store’s wp-admin, you are not affected by this issue.

If you have automatic updates enabled for WooCommerce and upon visiting wp-admin you receive a fatal error, you are likely affected by this issue.

What action should I take?

If your store is affected by this Action Scheduler incompatibility, we recommend taking one of the following actions:

  • Downgrading your WooCommerce version to 8.7.0. This is the version of WooCommerce that currently is tagged as stable on WordPress.org.
  • Adding the following filter to your site: add_filter( 'woocommerce_marketplace_suppress_promotions', '__return_true' );.

Alternatively, you could upgrade the plugin that is loading an older version of Action Scheduler. However, the specific plugin causing this conflict will vary on a site-by-site basis and may be difficult to identify, so we do not recommend this approach as a first step. As a general recommendation, we encourage you to regularly update the plugins running on your WooCommerce store to ensure you’re up-to-date with the latest bug fixes and security patches.

What actions are we taking?

We’re currently working to release a stable version of WooCommerce 8.8. We don’t yet have a confirmed release date, but expect the release to happen within the coming days. We will notify the community via @DevelopWoo on Twitter and by updating this blog post when a stable version of WooCommerce 8.8 becomes available.

As previously mentioned, we’re committed to implementing better automated testing for WooCommerce. We’re making progress on this and have seen an improvement in release quality as a result, but it is unlikely that an automated test would have caught this issue. Additionally, we’ll continue to focus to coding more defensively, reducing the likelihood of this type of issue.

Why did the tags get reverted?

Before deploying to WordPress.org, our suite of tests passed as expected. However, when the deployment was picked up by WordPress.com, our colleagues alerted us to fatal errors on a small number of sites. To safeguard the integrity of the WordPress platform, we made the decision to revert to the latest stable tag. This action was taken to prevent further complications and ensure the stability of the WordPress environment

Thank you!

We really appreciate the community’s patience as we respond to this situation and prepare a stable release of WooCommerce 8.8. You can expect to be able to update soon, and we’re excited to release the features that 8.8 includes.


7 responses to “Developer Advisory: WooCommerce 8.8.1 – potential conflict with old Action Scheduler versions”

  1. I am sure there are good historical reasons for the current situation, as well as the fact that WordPress’ main update mechanism is automatic and driven from the GUI, but I really, really wish that WP would implement in its core the same dependency resolution logic and version compatibility declarations which is used by the rest of the PHP sphere in the form of Composer…

    All it took me is one very small WooCommerce project, with no more than half a dozen plugins installed, to come to the conclusion that plugins do often bundle sub-dependencies along with their own code, load them using a myriad of ways, and that there seems to be no standard way to avoid two plugins from attempting to load different versions of the same library/class.

    I even have in my todo list a simple filesystem scanner that would look for such duplicate dependendencies. I guess this means I’ll have to make that the next priority 😀

    1. shanibanerjee Avatar
      shanibanerjee

      Hi @gggeek!

      Sometimes we can’t account for how plugins are being coded, as was in this case, we have our best practice suggestions for this, but obviously, sometimes things can slip through the cracks. What is good, is that we caught this and are able to look at some of those workflow opportunities . We do heavily utilize Composer, so perhaps this is a space that we took for granted, but are certainly circling around to from this incident to look at potential solutions.

      Thank you for the suggestion, and please always share your solutions, we love to see them.

  2. […] WooCommerce 8.8.2 är släppt, vilken fixar problem med äldre Action Scheduler-versioner som uppstod i […]

  3. Experiencing a snag with the latest WooCommerce update on cellpartsworld.com. Some products aren’t appearing on the frontend, which could be due to a theme conflict or other issues. The site’s integrated with Atrex utility, syncing products from there. While all products show up in WooCommerce backend, they’re not visible on the frontend. Also, seeing a message about outdated WooCommerce templates. Any suggestions or insights would be greatly appreciated

    1. Brent MacKinnon Avatar
      Brent MacKinnon

      Hey Syed! I just spotted your question in our other post, and responded there. I hope it helps!
      https://developer.woocommerce.com/2024/04/09/april-office-hours-open-forum/#comment-19977

Leave a Reply

Your email address will not be published. Required fields are marked *