v2.9.9.6
See PRO Plugin Updates and Update WordPress More Safely
PRO plugin and theme updates that WordPress shows in wp-admin now show in xCloud too. Updates are checked against your WordPress and PHP versions first, caches are cleared afterwards, and you can follow every step. You can also switch a Git site to SSH yourself when its repository turns private.
🔥 New Features
🆕 PRO Plugin and Theme Updates Now Show in xCloud
Before, many premium plugins and themes showed an update in wp-admin but not in xCloud. Now xCloud finds the same updates WordPress does, and tells you when a licence is the reason an update cannot run.
Who it’s for: WordPress site owners and agencies who use premium plugins and themes.
- Plugins and themes that do not come from wordpress.org get a PRO badge.
- An update that the vendor offers without a download shows Licence needed, usually because the licence has expired or is not activated on that site. Renew or activate it, then click Refresh All.
- The Updates Manager has a Licence needed tab and count. These updates are left out of the update counts, the To-Do list and client reports.
- Updating everything skips Licence needed items. An item you pick on its own still tries to update.
How to Manage WordPress Updates Easily with Updates Manager
🆕 Updates That Check Compatibility, Clear Caches and Show Their Progress
Before, an update that needed a newer PHP could fail on your site, visitors could see old cached pages after an update, and nothing said why an item was skipped. Now each update is checked first, caches are cleared after it, and every step shows as it runs.
Who it’s for: WordPress site owners and agencies.
- An update that needs a newer WordPress or PHP version shows Not compatible, with the reason, for example “Needs PHP 8.1 (site runs 7.4).” Its Update button cannot be clicked.
- The update dialog says what will be skipped, for example “8 will update · 3 need a licence · 1 not compatible”.
- Clear caches after updating is on by default. After a successful update it clears the site’s page cache, the site’s Redis object cache and its Cloudflare cache when they are on, so visitors see the new version right away.
- On a site’s Updates page, Take a backup first (the update waits for it) runs the backup before the update. If the backup fails, the site is not updated.
- The page shows each step as it runs: Backing up, Updating, Clearing cache and Finishing up. When the run ends, one message sums it up, for example “8 of 10 updated · 1 failed”.
- Update History lists skipped items with their reason and has a Nothing updated tab. Each plugin and theme has a History link that shows every update, failure, skip and rollback for it.
How to Manage WordPress Updates Easily with Updates Manager
🆕 Switch a Git Site to SSH When Its Repository Turns Private
Before, a site connected through GitHub, GitLab or Bitbucket stopped deploying when you made its repository private, and only our support team could fix it. Now you can switch it to SSH yourself from the site’s Git page.
Who it’s for: Developers who deploy from Git.
- Open the site’s Git page and click Switch to SSH with a deploy key.
- xCloud changes the repository address and adds a deploy key through your connected Git account. If the account cannot add keys, xCloud shows the key for you to add.
- Sites created from a repository URL, and sites already on SSH, work as before.
Troubleshooting Git Deployments: Stuck, Failed or Not Triggering
🧑💻 For Developers: Public API and MCP
- WordPress updates:
POST /sites/{uuid}/wordpress/updatetakesclear_cache_after_update(defaulttrue). Items you cannot update are listed underskipped_items, with the new reasonincompatible. Whenslugsis omitted, items that need a licence are skipped too. - Plugin and theme lists: items from
GET /sites/{uuid}/wordpress/plugins,/themesand/updatesnow carrylicence_needed,is_proandincompatibility_reason, with a separatelicence_neededcount. Existing counts are unchanged. - Update results:
GET /sites/{uuid}/wordpress/operations/{operationUuid}reportsnot_updatedwhen an update ran but the version did not change, and shows the versions found on the site. - To-Do: after
POST /todos/{key}/actions/{action}, pollGET /todos/{key}/statusuntilis_terminalis true, and read past results fromGET /todos/history.GET /todosalso returns aneeds_attentioncount and aneeds_attentionflag on each item. In AI assistants that support MCP Apps, To-Do results show as interactive cards with Fix, Fix all, Snooze, Ignore and Mark done. - Docker Compose log: asking
type=docker-compose-logfor a site that is not a Docker site now returns a 422 with a clear message instead of a server error.
🔒 Security
- Update History now shows each team member only the update runs on the servers and sites they can access. Before, any member could read every run in the team.
- Refresh All in the Updates Manager now checks only the sites you can access.
⚡ Improvements
- WordPress
- xCloud now checks every WordPress site for updates once a day. The site’s Updates page shows when it was last checked and the Next check.
- When a check fails, the site shows Update check not working with the reason. The next good check clears it.
- Updates from a site’s Updates page now run on the same engine as the Updates Manager, and appear in Update History.
- An update that ran but did not change the version now shows Not updated instead of “Updated”, with the reason under the version.
- A queued update reads Waiting for the server instead of “Updating…”.
- Long update runs on many sites are no longer stopped at 45 minutes, and an interrupted update no longer leaves the site in maintenance mode.
- Updates pause briefly between items, and wait while the server is busy.
- Scheduled WordPress tasks on new and re-saved sites now start at different minutes, so your server is less busy when many sites run them.
- Docker
- Deploy via Git on a Docker server now has an editable Branch field. It no longer falls back to
main, so a repository whose branch ismasterordevelopdeploys. How to Deploy a Custom Docker Application from a Git Repository with xCloud
- Deploy via Git on a Docker server now has an editable Branch field. It no longer falls back to
- To-Do
- On Ubuntu 20.04 servers, the A PHP security patch is needed on… To-Do now says why no fix will come: “Your server runs Ubuntu 20.04, which no longer gets PHP security builds. We cannot patch PHP on it. Move your sites to a server with Ubuntu 22.04 or 24.04.” It offers no Retry and can be ignored.
- SSH Keys
- Add New SSH Key is tidier. The setup steps sit behind How do I get a public key?, and the server list has search, Select all and Clear. The options now read Add to every new server and Add to existing servers.
🐞 Bug Fixes
- To-Do
- The To-Do list, the Needs your attention card and the header badge now show a finished fix without a page reload.
- A Security updates are waiting fix whose updates installed no longer ends as “The fix did not finish”.
- When a PHP security patch run cannot be confirmed, the To-Do row and the server’s event now say why, and Retry is hidden when a rerun cannot help.
- The header To-Do badge now counts the same items as Needs your attention. News no longer adds to the count.
- Billing
- Manual Invoices no longer show Pay Now or Cancel, which gave an error. These invoices are paid offline. The filters now stay on the manual list.
- Installments are now listed in payment order, first installment first. Pay Now and Download no longer overlap, and page links show under the list.
- Upgrading your plan no longer fails when a server you deleted still had an unpaid bill from a free offer.
- Mail Delivery
- Mail Delivery auto-upgrade now runs when your email credits reach zero. Before, it only ran between 90% and 99% used.
- SSL
- A multisite subdomain site with an issued wildcard certificate no longer shows a Save button that restarts the DNS challenge. Renewal stays available from its banner.
- Sites
- A domain change now stops before moving anything when Redis is not running, so the site stays online. Start Redis and try again.
- Cancelling a server migration now stops the copy that is running, and no next step starts after it.
- Cloudflare Enterprise
- Uploading a plugin or theme in WP Admin is no longer blocked by a false firewall match.
- Support Portal
- Support ticket times now show in your own time zone.
- Opening Feedback or Live Chat now closes the other one, and Feedback is highlighted in the sidebar while it is open.
- Dashboard
- Sidebar menus on a site page now open and can be clicked while the Free mailbox card shows.
- White Label
- Edit Invoice now opens on the Billing, Product details and Addon details pages.
- Storefront and checkout prices now show the product’s own currency and renewal period, and “Billed Monthly” shows only for monthly plans.
- The lowest allowed price for a plan on your own provider now includes the platform fee. A plan whose xCloud plan was removed can no longer be priced at any amount.
- The default Terms show your brand again, and saved legal text no longer shows the word “undefined”.
- Checkout now shows NVMe storage and its size instead of “SSD”.