You click Install or Update on a plugin, theme or WordPress itself and get "Download failed. No working transports found." It is not the plugin and not your internet connection. WordPress fetches files through PHP on the server, and PHP has neither of its two ways to make a secure web request: the cURL extension, or PHP's own streams with OpenSSL. Usually one extension was switched off, often by a PHP version change. Here is how to confirm it and turn it back on.
curl_exec or curl_multi_exec under disable_functions for security. phpinfo() shows that line; WordPress then treats cURL as unusable.WP_HTTP_BLOCK_EXTERNAL is set in wp-config.php. "cURL error 28" or "cURL error 60" means cURL works and the request itself fails: see the guides linked below.php8.2-curl, then restart PHP-FPM or Apache. Installing it for the command-line PHP only does not help the website.disable_functions lists curl functions, ask the host to allow curl_exec and curl_multi_exec for your account, or turn on allow_url_fopen with OpenSSL so WordPress can use streams instead.| What you see | What it means | Usual fix |
|---|---|---|
| Started right after a PHP version change | New PHP version lacks the curl/openssl extensions | Tick curl and openssl for that version |
| Site Health: cURL version "Not available" | cURL extension not loaded | Enable it, or install php<version>-curl and restart PHP |
| cURL listed, error still shows | curl functions disabled by the host | Host allows them, or allow_url_fopen + OpenSSL |
| "User has blocked requests through HTTP" | WP_HTTP_BLOCK_EXTERNAL is on in wp-config.php | Remove it or add WordPress.org to WP_ACCESSIBLE_HOSTS |
| "cURL error 28: Operation timed out" | cURL works, the request is blocked or slow | See cURL error 28 |
| "cURL error 60: SSL certificate problem" | cURL works, the certificate check fails | See cURL error 60 |
Most cases are two ticked boxes in the host's PHP settings. If you have no such screen, or the host will not change it, that is what the box below is for. Related: installation or update failed, automatic update failed, cURL error 28.