Troubleshooting, common problems, known limitations
Federico Dossena edited this page 2019-06-30 07:43:30 +02:00

Troubleshooting

These are the most common issues reported by users, and how to fix them. If you still need help, contact me at info@fdossena.com.

Download test gives very low result

Are garbage.php and empty.php (or your replacements) reachable?
Press F12, select network and start the test. Do you see errors? (cancelled requests are not errors)
If a small download starts, open it in a text editor. Does it say it's missing openssl_random_pseudo_bytes()? In this case, install OpenSSL (this is usually included when you install Apache and PHP on most distros).

Upload test is inaccurate, and/or I see lag spikes

Check your server's maximum POST size, make sure it's at least 20Mbytes, possibly more

Download and/or upload results are slightly too optimistic

The test was fine tuned to run over a typical IPv4 internet connection. If you're using it under different conditions, see the overheadCompensationFactor parameter.

All tests are wrong, give extremely high results, browser lags/crashes, ...

You're running the test on localhost, therefore it is trying to measure the speed of your loopback interface. The test is meant to be run over an Internet connection, from a different machine.

Ping test shows double the actual ping

Make sure your server is sending the Connection:keep-alive header

The server is behind a load balancer, proxy, etc. and I get the wrong IP address

Edit getIP.php and replace lines 14-23 with what is more appropriate in your scenario.
Example: $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

The results sharing just generates a blank image

If the image doesn't display and the browser displays a broken image icon, FreeType2 is not installed or configured properly.
If the image is blank, this usually happens because PHP can't find the font files inside the results folder. You can fix your PHP config or edit results/index.php and use absolute paths for the fonts. This is a known issue with PHP and no real solution is known.

My server is behind Cloudflare and I can't reach full speed on some of the tests

This is not a speedtest related issue, as it can be replicated in virtually any HTTP file upload/download.
Go to your domain's DNS settings and change "DNS and HTTP proxy (CDN)" to "DNS only", and wait for the settings to be applied (can take a few minutes).

On Windows Server, using IIS, the upload test doesn't work, CORS errors are visible in the console

This is a configuration issue. Make a file called web.config in wwwroot and adapt the following code:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <cors enabled="true" failUnlistedOrigins="false"> 
      <add origin="*"> 
        <allowHeaders allowAllRequestedHeaders="true" />
        <allowMethods> 
          <add method="GET" /> 
          <add method="POST" /> 
          <add method="PUT" /> 
          <add method="DELETE" /> 
          <add method="OPTIONS" /> 
        </allowMethods> 
        <exposeHeaders>
        </exposeHeaders> 
      </add>
    </cors> 
  </system.webServer> 
</configuration>

ID obfuscation doesn't work (incorrect output, blank results image)

ID obfuscation only works on 64-bit PHP (requires PHP_INT_SIZE to be 8).
Note that older versions of PHP 5 on Windows use PHP_INT_SIZE of 4, even if they're 64 bit. If you're in this situation, update your PHP install.

Also, make sure that the web server has write permission on the results folder.

Known bugs and limitations

General

  • The ping/jitter test is measured by seeing how long it takes for an empty XHR to complete. It is not an acutal ICMP ping. Different browsers may also show different results, especially on very fast connections on slow devices.

IE specific

  • The upload test is not precise on very fast connections with high latency (will probably be fixed by Edge 17)
  • On IE11, a same origin policy error is erroneously triggered under unknown conditions. Seems to be related to running the test from unusual URLs like a top level domain (for instance http://abc/speedtest). These are bugs in IE11's implementation of the same origin policy, not in the speedtest itself.
  • On IE11, under unknown circumstances, on some systems the test can only be run once, after which speedtest_worker.js will not be loaded by IE until the browser is restarted. This is a rare bug in IE11.

Firefox specific

  • On some Linux systems with hardware acceleration turned off, the page rendering makes the browser lag, reducing the accuracy of the ping/jitter test, and potentially even the download and upload tests on very fast connections.