Unable to connect to Xstore api error after install

This topic has 14 replies, 2 voices, and was last updated 2 months, 1 week ago ago by Andrew Mitchell

  • Avatar: hornywhale
    hornywhale
    Participant
    June 11, 2026 at 23:22

    Just installed xstore theme and it spits out this error – We are unable to connect to the XStore API with the XStore theme. Please check your SSL certificate or white lists.
    cURL error 28: Operation timed out after 5002 milliseconds with 16284 bytes received
    And after installing my wp admin just died, now it takes it 2-3 mins to load.

    13 Answers
    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 12, 2026 at 07:27

    Hello, hornywhale,

    Could you please provide temporary wp-admin and FTP access? We will check what can be done to help you.
    To grant WP-Admin access, please proceed to create a new user account with an administrator role through your WordPress Dashboard. Once the account is established, you may securely transmit the username and password to us via the Private Content section designated for this purpose.

    For FTP access, we require the following details: FTP host, FTP username, FTP password, FTP port, and FTP encryption type. If you need assistance in creating these credentials, please reach out to your hosting provider who will guide you through the process

    Best Regards,
    8Theme’s Team

    Avatar: hornywhale
    hornywhale
    Participant
    June 12, 2026 at 13:06

    Wordpress is running in docker on my server, so it seems like i need to give you ssh access to it

    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 12, 2026 at 14:22

    Thank you for your clarification,

    For security reasons, we are unable to access customers’ servers via SSH. As the issue seems to be related to the WordPress environment and the XStore API connection, we only require temporary WordPress administrator access and, if possible, FTP/SFTP access to review the installation and perform debugging.

    If your website is running inside a Docker environment, you can still provide FTP/SFTP access to the container or the mounted WordPress files, or alternatively, create a temporary WordPress administrator account for us.

    If FTP/SFTP access cannot be provided, please share the following information instead:

    * Your PHP version;
    * The output from WooCommerce → Status → System Status;
    * The results of the following commands executed on your server:

    curl -I https://8theme.com
    curl -v https://8theme.com

    This information will help us determine whether the issue is related to network restrictions, SSL validation, or server configuration.

    Best regards,
    8Theme Team

    Avatar: hornywhale
    hornywhale
    Participant
    June 12, 2026 at 14:55

    Im running php 8.3, heres the output of curl

    
    root@cannovaro:~/cannavaro# curl -I https://8theme.com
    HTTP/2 301
    date: Fri, 12 Jun 2026 13:25:18 GMT
    server: Apache
    x-powered-by: PHP/8.0.30
    x-redirect-by: WordPress
    strict-transport-security: max-age=31536000
    location: https://www.8theme.com/
    cache-control: max-age=0
    expires: Fri, 12 Jun 2026 13:25:18 GMT
    vary: User-Agent,Accept-Encoding
    x-xss-protection: 1; mode=block
    x-content-type-options: nosniff
    referrer-policy: no-referrer-when-downgrade
    content-type: text/html; charset=UTF-8
    
    root@cannovaro:~/cannavaro# curl -v https://8theme.com
    * Host 8theme.com:443 was resolved.
    * IPv6: (none)
    * IPv4: 148.251.192.47
    *   Trying 148.251.192.47:443...
    * Connected to 8theme.com (148.251.192.47) port 443
    * ALPN: curl offers h2,http/1.1
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    *  CAfile: /etc/ssl/certs/ca-certificates.crt
    *  CApath: /etc/ssl/certs
    * TLSv1.3 (IN), TLS handshake, Server hello (2):
    * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
    * TLSv1.3 (IN), TLS handshake, Certificate (11):
    * TLSv1.3 (IN), TLS handshake, CERT verify (15):
    * TLSv1.3 (IN), TLS handshake, Finished (20):
    * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
    * TLSv1.3 (OUT), TLS handshake, Finished (20):
    * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / RSASSA-PSS
    * ALPN: server accepted h2
    * Server certificate:
    *  subject: CN=*.8theme.com
    *  start date: Aug 24 00:00:00 2025 GMT
    *  expire date: Sep 18 23:59:59 2026 GMT
    *  subjectAltName: host "8theme.com" matched cert's "8theme.com"
    *  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=Thawte TLS RSA CA G1
    *  SSL certificate verify ok.
    *   Certificate level 0: Public key type RSA (3072/128 Bits/secBits), signed using sha256WithRSAEncryption
    *   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    *   Certificate level 2: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    * using HTTP/2
    * [HTTP/2] [1] OPENED stream for https://8theme.com/
    * [HTTP/2] [1] [:method: GET]
    * [HTTP/2] [1] [:scheme: https]
    * [HTTP/2] [1] [:authority: 8theme.com]
    * [HTTP/2] [1] [:path: /]
    * [HTTP/2] [1] [user-agent: curl/8.5.0]
    * [HTTP/2] [1] [accept: */*]
    > GET / HTTP/2
    > Host: 8theme.com
    > User-Agent: curl/8.5.0
    > Accept: */*
    >
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    * old SSL session ID is stale, removing
    < HTTP/2 301
    < date: Fri, 12 Jun 2026 13:25:20 GMT
    < server: Apache
    < x-powered-by: PHP/8.0.30
    < x-redirect-by: WordPress
    < strict-transport-security: max-age=31536000
    < location: https://www.8theme.com/
    < cache-control: max-age=0
    < expires: Fri, 12 Jun 2026 13:25:20 GMT
    < vary: User-Agent,Accept-Encoding
    < x-xss-protection: 1; mode=block
    < x-content-type-options: nosniff
    < referrer-policy: no-referrer-when-downgrade
    < content-length: 0
    < content-type: text/html; charset=UTF-8
    <
    * Connection #0 to host 8theme.com left intact

    Ive provided wp administator access in private content.

    Please contact administrator
    for this information.
    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 15, 2026 at 09:02

    Hello, hornywhale,

    Thank you for providing the test results.

    Based on the cURL output, your server can successfully connect to 8theme.com:

    SSL certificate validation is successful;
    The TLS handshake completes without issues;
    The server receives a valid HTTP response from our website.

    Therefore, the issue does not appear to be related to general connectivity or SSL configuration.

    Since the XStore API request is timing out after approximately 5 seconds (cURL error 28), the problem is likely environment-specific (for example, related to Docker networking, firewall rules, proxy configuration, or restrictions affecting PHP/WordPress outbound requests rather than the system cURL).

    Could you please also provide the following information:

    The output from Xstore → System Status

    if possible, please run the following command from within the same Docker container where WordPress/PHP is running:

    php -r "var_dump(wp_remote_get('https://www.8theme.com'));"

    This will help us determine whether the issue is specific to WordPress/PHP rather than the server itself.

    Please note that the timeout for the XStore API request is currently very short (5 seconds).

    Best regards,
    8Theme Team

    Avatar: hornywhale
    hornywhale
    Participant
    June 15, 2026 at 11:29

    I tested wp_remote_get() directly from WordPress.

    Google:
    OK

    api.wordpress.org:
    OK

    8theme:
    WP_Error:
    cURL error 28: Operation timed out after 500001 milliseconds with 7668 out of 43156 bytes received.

    The connection is established and partial content is received, but the transfer stalls before completion.

    Shell curl works, but WordPress HTTP API times out only with 8theme.com.

    root@8b7b018cef56:/var/www/html# php -r "require '/var/www/html/wp-load.php'; var_dump(wp_remote_get('https://www.8theme.com'));"
    object(WP_Error)#6189 (3) {
      ["errors"]=>
      array(1) {
        ["http_request_failed"]=>
        array(1) {
          [0]=>
          string(98) "cURL error 28: Operation timed out after 500001 milliseconds with 7668 out of 43156 bytes received"
        }
      }
      ["error_data"]=>
      array(0) {
      }
      ["additional_data":protected]=>
      array(0) {
      }
    }

    System status:
    https://imgur.com/Xf7auEW

    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 15, 2026 at 13:42

    The test results confirm that the issue is not related to general server connectivity. Both Google and api.wordpress.org are functioning correctly, and the connection to 8theme.com is established. However, the WordPress HTTP API receives only partial data before the transfer stalls.

    Since the shell curl command works properly, but wp_remote_get() fails only for 8theme.com, this indicates an environment-specific issue within the WordPress/PHP HTTP layer, Docker networking, proxy or firewall rules, or the cURL/PHP configuration.

    Please review the following points on your server or container:

    1. Ensure that PHP cURL and OpenSSL are up to date.
    2. Check whether any firewall, proxy, WAF, or Docker network rule is affecting PHP outbound requests.
    3. Try disabling HTTP/2 for WordPress cURL requests.
    4. Increase the WordPress/PHP HTTP timeout if it is restricted by the environment.

    You may also ask your hosting or server administrator to investigate why PHP cURL receives partial content from http://www.8theme.com and then stalls, while the system curl command works correctly.

    add_action('http_api_curl', function($handle) {
        curl_setopt($handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    }, 10, 1);

    Best regards,
    8Theme Team

    Avatar: hornywhale
    hornywhale
    Participant
    June 15, 2026 at 14:52

    Since zero firewalls and proxies are installed, curl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.4 are being up to date and disabling http/2 didnt help

    root@8b7b018cef56:/var/www/html# php -r '
    require "/var/www/html/wp-load.php";
    
    add_action("http_api_curl", function($handle) {
        curl_setopt($handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    }, 10, 1);
    
    var_dump(wp_remote_get("https://www.8theme.com"));
    '
    object(WP_Error)#6190 (3) {
      ["errors"]=>
      array(1) {
        ["http_request_failed"]=>
        array(1) {
          [0]=>
          string(98) "cURL error 28: Operation timed out after 500001 milliseconds with 7668 out of 42884 bytes received"
        }
      }
      ["error_data"]=>
      array(0) {
      }
      ["additional_data":protected]=>
      array(0) {
      }
    }

    I currently have 0 idea on what to do and how to fix this.

    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 16, 2026 at 09:04

    Hello, hornywhale,

    Thank you for checking this.

    Since disabling HTTP/2 and forcing IPv4 did not change the result, and the timeout consistently occurs after receiving only part of the response, this confirms that the request is successfully established but the response transfer is being interrupted or stalled specifically in PHP cURL.

    At this stage, we need to compare the raw PHP cURL behavior with the WordPress HTTP API behavior from within the same Docker container.

    Please run the following command inside the WordPress/PHP container and provide us with the complete output

    php -r '
    $ch = curl_init("https://www.8theme.com/");
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => true,
        CURLOPT_VERBOSE => true,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_CONNECTTIMEOUT => 15,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING => "",
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
    ]);
    $result = curl_exec($ch);
    var_dump(curl_errno($ch));
    var_dump(curl_error($ch));
    var_dump(curl_getinfo($ch));
    var_dump(strlen($result ?: ""));
    curl_close($ch);'

    Best regards,
    8Theme Team

    Avatar: hornywhale
    hornywhale
    Participant
    June 16, 2026 at 11:02
    * Host www.8theme.com:443 was resolved.
    * IPv6: (none)
    * IPv4: 148.251.192.47
    *   Trying 148.251.192.47:443...
    * ALPN: curl offers http/1.1
    *  CAfile: /etc/ssl/certs/ca-certificates.crt
    *  CApath: /etc/ssl/certs
    * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS
    * ALPN: server accepted http/1.1
    * Server certificate:
    *  subject: CN=*.8theme.com
    *  start date: Aug 24 00:00:00 2025 GMT
    *  expire date: Sep 18 23:59:59 2026 GMT
    *  subjectAltName: host "www.8theme.com" matched cert's "*.8theme.com"
    *  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=Thawte TLS RSA CA G1
    *  SSL certificate verify ok.
    *   Certificate level 0: Public key type RSA (3072/128 Bits/secBits), signed using sha256WithRSAEncryption
    *   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    *   Certificate level 2: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
    * Connected to www.8theme.com (148.251.192.47) port 443
    * using HTTP/1.x
    > GET / HTTP/1.1
    Host: www.8theme.com
    Accept: */*
    Accept-Encoding: deflate, gzip, br, zstd
    
    * Request completely sent off
    < HTTP/1.1 200 OK
    < Date: Tue, 16 Jun 2026 10:00:34 GMT
    < Server: Apache
    < Strict-Transport-Security: max-age=31536000
    < Vary: Accept-Encoding,User-Agent
    < Upgrade: h2
    < Connection: Upgrade
    < Last-Modified: Tue, 16 Jun 2026 09:19:09 GMT
    < Accept-Ranges: bytes
    < Content-Length: 43031
    < Cache-Control: max-age=0
    < Expires: Tue, 16 Jun 2026 10:00:34 GMT
    < X-XSS-Protection: 1; mode=block
    < X-Content-Type-Options: nosniff
    < Referrer-Policy: no-referrer-when-downgrade
    < Content-Type: text/html; charset=UTF-8
    < Content-Encoding: gzip
    <
    * Operation timed out after 60002 milliseconds with 7675 out of 43031 bytes received
    * closing connection #0
    int(28)
    string(82) "Operation timed out after 60002 milliseconds with 7675 out of 43031 bytes received"
    array(40) {
      ["url"]=>
      string(23) "https://www.8theme.com/"
      ["content_type"]=>
      string(24) "text/html; charset=UTF-8"
      ["http_code"]=>
      int(200)
      ["header_size"]=>
      int(517)
      ["request_size"]=>
      int(95)
      ["filetime"]=>
      int(-1)
      ["ssl_verify_result"]=>
      int(0)
      ["redirect_count"]=>
      int(0)
      ["total_time"]=>
      float(60.002517)
      ["namelookup_time"]=>
      float(0.007461)
      ["connect_time"]=>
      float(0.056424)
      ["pretransfer_time"]=>
      float(0.14269)
      ["size_upload"]=>
      float(0)
      ["size_download"]=>
      float(7675)
      ["speed_download"]=>
      float(127)
      ["speed_upload"]=>
      float(0)
      ["download_content_length"]=>
      float(43031)
      ["upload_content_length"]=>
      float(0)
      ["starttransfer_time"]=>
      float(0.193424)
      ["redirect_time"]=>
      float(0)
      ["redirect_url"]=>
      string(0) ""
      ["primary_ip"]=>
      string(14) "148.251.192.47"
      ["certinfo"]=>
      array(0) {
      }
      ["primary_port"]=>
      int(443)
      ["local_ip"]=>
      string(10) "172.18.0.3"
      ["local_port"]=>
      int(50518)
      ["http_version"]=>
      int(2)
      ["protocol"]=>
      int(2)
      ["ssl_verifyresult"]=>
      int(0)
      ["scheme"]=>
      string(5) "https"
      ["appconnect_time_us"]=>
      int(142200)
      ["connect_time_us"]=>
      int(56424)
      ["namelookup_time_us"]=>
      int(7461)
      ["pretransfer_time_us"]=>
      int(142690)
      ["redirect_time_us"]=>
      int(0)
      ["starttransfer_time_us"]=>
      int(193424)
      ["total_time_us"]=>
      int(60002517)
      ["effective_method"]=>
      string(3) "GET"
      ["capath"]=>
      string(14) "/etc/ssl/certs"
      ["cainfo"]=>
      string(34) "/etc/ssl/certs/ca-certificates.crt"
    }
    int(0)
    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 16, 2026 at 14:04

    This confirms that the issue is not caused by WordPress, WooCommerce, or the XStore theme itself. The raw PHP cURL request also fails inside the Docker container:

    Operation timed out … with 7675 out of 43031 bytes received

    So the connection is established, SSL is valid, and the server starts sending the response, but PHP cURL inside the container cannot complete the download from http://www.8theme.com.

    Please ask your server/Docker administrator to check the PHP container network stack, DNS/MTU settings, compression handling, and PHP cURL/libcurl behavior. As a temporary diagnostic test, please also try disabling compression for this request:

    php -r '
    $ch = curl_init("https://www.8theme.com/");
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => true,
        CURLOPT_VERBOSE => true,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_CONNECTTIMEOUT => 15,
        CURLOPT_HTTPHEADER => ["Accept-Encoding: identity"],
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
    ]);
    $result = curl_exec($ch);
    var_dump(curl_errno($ch));
    var_dump(curl_error($ch));
    var_dump(curl_getinfo($ch));
    var_dump(strlen($result ?: ""));
    curl_close($ch);
    '

    If this test works, the issue is related to compressed response handling in the PHP cURL environment. If it still fails, the issue is most likely related to Docker networking or the PHP container transport layer.

    Best Regards,
    8Theme Team

    Avatar: hornywhale
    hornywhale
    Participant
    June 16, 2026 at 15:55

    I’m sick and tired of making this work, so I’d like to get a refund, is that possible?

    Avatar: Andrew Mitchell
    Andrew Mitchell
    Support staff
    June 17, 2026 at 08:10

    Hello, hornywhale,

    We understand your frustration; however, without access to the FTP or the admin panel, it is quite difficult for us to assist you effectively. Please kindly review the private content

    Best regards,
    8Theme Team

    Please contact administrator
    for this information.
  • Viewing 14 results - 1 through 14 (of 14 total)

You must be logged in to reply to this topic.Log in/Sign up

We're using our own and third-party cookies to improve your experience and our website. Keep on browsing to accept our cookie policy.