“Unexpected error” on update requests

It needs connectivity to wordpress.org and is timing out. I am behind a corporate firewall. I have never had this issue come up before in previous versions. Why does themes.php need access to wordpress.org and what can I do so it doesn’t (or maybe something that will allow me to use my proxy settings).

Adding in error message:

Read More

PHP Warning: An unexpected error occurred. Something may be wrong with
WordPress.org or this server’s configuration. If you continue to have
problems, please try the support forums. (WordPress could not
establish a secure connection to WordPress.org. Please contact your
server administrator.) in
C:inetpubwwwrootticketwp-adminincludestheme.php on line 298

This is definitely new to 3.7. We have 3.6.1 installed 4-5 times and no issues. I would have people chopping off my head if they couldn’t change their theme.

Update: 3.8 fixed a lot of the major issues. However we still cannot find plugins, find themes or get and of the dashboard feeds. If anyone has a solution to these – even if it a suggestion for the proxy server, that would be helpful.

Related posts

4 comments

  1. Navigating WP admin in general tends to trigger multiple external requests, such as fetching news feeds and theme/plugin updates (not counting whatever plugin/themes might be doing on their own).

    You can put configuration constants into wp-config.php to block external requests completely/partially:

    define( 'WP_HTTP_BLOCK_EXTERNAL', true );
    define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );
    

    Or configure external requests to use your proxy settings:

    define('WP_PROXY_HOST', '192.168.84.101');
    define('WP_PROXY_PORT', '8080');
    define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com, *.wordpress.org');
    

    Plus WP_PROXY_USERNAME and WP_PROXY_PASSWORD for authentication.

  2. This is a problem with changes in WordPress’ HTTP API. It isn’t fully compatible with cURL anymore.
    I am not sure, why exactly it happens (there is no context information given, when this error occurs), but you can add a temporary fix.

    In a plugin, or at the very end of your wp-config.php, add the following lines:

    add_filter( 'http_api_transports', function()
    {
        return array( 'streams' );
    });
    

    This will disable cURL and make the error message go away without affecting other components on the server.


    For completeness, here my current cURL details:

    $ curl --version
    curl 7.26.0 (i686-pc-mingw32) libcurl/7.26.0 OpenSSL/0.9.8x zlib/1.2.7
    Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tf
    tp
    Features: GSS-Negotiate Largefile NTLM SSL SSPI libz
    
  3. I did not have timeouts but the https://api.wordpress.org requests were getting 500 handshakefailed errors from the corporate firewall. I discovered that on my Ubuntu 12.04 system, I had failed to install php5-curl. Once I installed it and restarted apache2, the problem went away.

  4. In your case it might be only a network issue. But I’ve had an issue with the same warning (so it may apply, though it may have several possible reasons) and found a solution within WordPress here, though on localhost. They suggested replacing the files referenced in the error message by the same files from fresh install of the same WordPress version (just download the .zip file for that version, unpack and copy the file in question).

    In my case it was (path-to-wordpress)/wp-include/update.php, in your case it would be (path-to-wordpress)/wp-admin/include/theme.php. As I understand the issue, some parts of a file where establishing the secure connection is handled went corrupted during an update.

Comments are closed.