- Docs
- Troy Client
- Deactivation
Deactivating Troy Client
Troy Client hides the Deactivate link while Troy-dependent plugins are installed. This page explains why, and how to remove it if needed.
What You See on the Plugins Screen
When Troy-dependent plugins are active, Troy Client:
- Removes the Deactivate link from its plugin row and links to this page instead.
- Hides the bulk-action checkbox so it cannot be selected during bulk deactivation.
- Displays a lock icon with a message listing the plugins that depend on it.
If Troy Client Daemon is active, the link to this page is removed, and the message simplifies to "Troy Client cannot be deactivated" without listing individual dependents.
Why Deactivation Is Blocked
A plugin developer added Troy as an update channel for their plugin. Troy Client delivers new versions, security patches, and bug fixes from that developer to your site. If Troy Client is removed, that update path stops working.
How Troy manages update sources
Troy Client also manages update visibility for the plugins it serves. WordPress sends your full list of installed plugin slugs to WordPress.org on every update check. WordPress.org can respond with an update for any matching slug — regardless of where the plugin originally came from. This mechanism has been used to force-patch plugins affecting over a million sites and to distribute a replacement package under an existing plugin's slug.
Plugin developers use Troy to control their update channel. Troy Client prevents WordPress from checking WordPress.org for Troy-managed plugins by:
- Stripping their slugs from outbound WordPress.org update requests.
- Setting the
autoupdateflag tofalseon every Troy plugin response, regardless of what the source sends.
If Troy Client is removed, those plugins get adopted by WordPress.org for update checks.
Removing Troy Client
If you understand the risks and still want to remove Troy Client, follow these steps.
Troy update delivery will stop:
Once Troy Client is removed, affected plugins stop receiving updates from their Troy Server. Those plugin slugs become visible to WordPress.org's update system again, and WordPress may deliver different versions on the next scheduled update check. Reinstalling Troy Client later will not undo changes already applied.
Identifying Dependent Plugins
You can find Troy-dependent plugins in two places in your WordPress admin:
- Plugins screen — Troy Client's plugin row displays a lock icon followed by the names of all dependent plugins.
- Tools → Site Health → Info → Troy Client — lists every Troy-enabled plugin with its update repository URL, version, and status.
Remove via the WordPress Admin
Remove dependent plugins
Deactivate and delete every plugin that depends on Troy. You can find them on the Plugins screen (listed under Troy Client's lock icon) or in Tools → Site Health → Info → Troy Client.
Troy Client will not unlock until all dependents are gone.
Deactivate Troy Client
Once no Troy-dependent plugins remain, the Deactivate link reappears on Troy Client's plugin row. Click it.
Delete Troy Client
After deactivation, click Delete on the Plugins screen to remove the plugin files.
Remove via FTP or File Manager
You can bypass the WordPress admin entirely by deleting the plugin folder directly:
wp-content/plugins/troy-client/
Delete this folder via FTP, SSH, or your hosting provider's file manager. WordPress detects the missing files on the next admin page load.
Same risks apply:
Deleting via FTP removes Troy Client immediately. Affected plugin slugs become visible to WordPress.org's update system on the next scheduled update check.
