YahnisElsts / plugin-update-checker

A custom update checker for WordPress plugins. Useful if you don't want to host your project in the official WP repository, but would still like it to support automatic updates. Despite the name, it also works with themes.
MIT License
2.23k stars 404 forks source link

Too many checking_for_updates requests #572

Open Streamlinelv opened 4 months ago

Streamlinelv commented 4 months ago

Hi,

For the most part we see that update check requests are coming once or twice a day, but a couple of our customers are sending thousands of these requests each day. I'm attaching a screenshot.

Is this a known issue and if it is, are there any plans in resolving it? Or maybe there is something that we can do to limit it via our plugin?

We are suing Plugin Update Checker Library 5.4.

screenshot-requests
YahnisElsts commented 4 months ago

An old version had a bug that could cause excessive update requests, but that was fixed long ago. It should no longer happen with version 5.4. Could it be that the customers in question have a very old version of your plugin that is using a very old version of PUC?

Also, it looks like the screenshot did not upload properly.

Edit: You can control how often PUC checks for updates in multiple ways, but that will only help if the extra requests are not caused by a bug or an outdated PUC version. For example, you could use the check_now filter to abort update requests when some custom conditions are met.

$updateChecker->addFilter(
    'check_now',
    function ($shouldCheck, $lastCheckTimestamp, $checkPeriod) {
        if ( should_stop_this_request() ) {
            return false;
        }
        return $shouldCheck;
    },
    10,
    3
);
Streamlinelv commented 4 months ago

Thank you for your response. Updated my initial post with screenshot. Unfortunately this is not the case of outdated PUC version since the client uses our v10.1 plugin release which already includes 5.4 version of PUC.

YahnisElsts commented 4 months ago

Well, I'm not aware of any current bugs or conflicts that could cause this kind of issue.

Some other ideas, mostly not very plausible:

If you have access to the customer's site, some of the "storage issues" possibilities can be tested by using the Debug Bar plugin. The "PUC (your-slug)" section should show the last check timestamp. You can test if the timestamp changes after you check for updates (you'll need to refresh the page to refresh the debug info).