What are the causes of a 416 Error?

That error means that some client sends a request to your server which specifies a range of bytes which is not serveable due to some reason.

This can happen with something like this example:

  • You have an image with physical size 1000 bytes
  • Your Server specifies the wrong content length e.g. 1500
  • The client sends a request to get 0 - 1500 bytes from your server
  • Your server sends a 416 because the image has only 1000bytes

This has been covered on Stack Overflow: 416 Requested Range Not Satisfiable

Check the error log for the 416 error. [I know you said you checked. It should be there unless you are including a resource from another server.] That should tell you what file. Then make sure it is getting cached correctly [or not cached at all].


What you can do with APC, is disable caching of certain files by using the apc.filters setting in your php.ini [or apc.inc or however you are including the apc config.] If you can figure out which file[s] are throwing the 416 error, you can start by configuring APC to not cache them. Sounds like a reasonable start to me.

Actually, come to think of it, if you can find the file throwing the error, you can use APC to, 1, see if it is cached; and 2, check on the file size that APC thinks it is; then 3, check the actual size on disk. Check out this link: devzone.zend.com/article/12618 [the official APC docs kinda suck]

416 - Requested Range Not Satisfiable
A 416 status code indicates that the server was unable to fulfill the request. This may be, for example, because the client asked for the 800th-900th bytes of a document, but the document was only 200 bytes long.

What causes this error in your case is hard to tell. I would start with the Apache error.log and scan for 416. This way you might be able to narrow it down further to what page was called and go from there.