Markus Michalski FAQ

Plugin Update Checker: Troubleshooting

Troubleshooting the Plugin Update Checker: no badges, slow or failing plugin list, rate limit, unexpected version, clearing the cache, known limitations and common questions.

Deutsche Version

Back to overview

Plugin Update Checker: Troubleshooting

The plugin does not report errors in the interface. When an error occurs, it simply shows no badge. A line containing [UpdateCheck] appears in the server's PHP error log in only two cases: when GitHub answers with an HTTP status other than 200 (including a connection error, which appears as HTTP 0) and when inserting the badges fails. Missing cURL, invalid JSON and a release without a tag name produce no log line. Where the log lives depends on your PHP configuration.

No badges visible

Check in this order:

  1. Is there an update at all? A badge only appears if the latest GitHub release has a higher version than the installed one. If everything is current, the list stays unchanged.
  2. Plugin enabled? Under Manage > Plugins, Plugin Update Checker must be enabled and have an active instance.
  3. Right page? Badges only appear on the plugin list in the Admin Panel, not on other pages.
  4. url in the checked plugin? The plugin's plugin.php needs a GitHub link in the url field. No GitHub link, no check. See Technical details.
  5. Release instead of tag? The developer must have published a release on GitHub. A bare tag is not found.
  6. Repository name with a dot? The plugin does not recognize names like my.plugin.
  7. Private repository? Without a token (or with a token that has no access) GitHub returns no data. A token is described under Configuration.
  8. Error cached? After a failed lookup the plugin does not ask again for one hour. Clear the cache once you have fixed the problem.
  9. cURL missing? Without the PHP extension curl the plugin does not query GitHub and logs nothing about it.
  10. Script blocked? If a Content Security Policy blocks inline scripts, the badge cannot be set. The plugin writes CSS and JavaScript inline into the page.

Plugin list loads slowly

With an empty cache the plugin queries GitHub for each checked plugin one after another. If GitHub is not reachable from the server, each request costs up to 5 seconds. Check the outgoing HTTPS connection to api.github.com (firewall, proxy, DNS). After the first failure the results are remembered for an hour and the list loads fast again.

Plugin list does not load or shows an error

If vendor/autoload.php is missing in the plugin folder, the plugin cannot load its classes and the plugin list breaks. Generate the autoloader with composer install --no-dev in the plugin folder (see Installation). If you can no longer reach the list, temporarily rename the plugin folder.

Rate limit

Without a token GitHub allows 60 requests per hour, according to the plugin's hint text. With many plugins and an empty cache this can get tight. The error log then contains GitHub API HTTP 403 (or 429) with the repository path. Fix: enter a GitHub token or raise the cache duration. After an error the plugin waits an hour anyway.

Badge shows an unexpected version

Clear the cache

Delete the folder osticket-update-check in the server's PHP temp directory, usually on Linux:

rm -rf /tmp/osticket-update-check/

The actual path is sys_get_temp_dir() of the PHP process that runs osTicket and can differ (for example with a private temp directory under PHP-FPM). A changed Cache Duration (hours) only affects newly written entries.

Known limitations

Common questions

Does the plugin check its own updates? Yes. The plugin.php of the Plugin Update Checker contains a GitHub URL, so it is checked like any other plugin.

Does it work with NGINX? Yes. CSS and JavaScript are written inline into the page, so no web server rule for plugin files is needed.

What happens if I disable the plugin? No more requests are sent and no badges are shown. The plugin creates no tables of its own. Its instance and configuration remain in osTicket.

Who sees the badges? Everyone who may open the plugin list in the Admin Panel.