HTTP error 500 is a generic HTTP status code which occurs when the web server encounters a problem that prevents it from returning the requested web page. The web server is unable to be more specific about the cause of the error. Also known as a 500 Internal Server Error, HTTP error 500 will be reported by your browser but the problem is with the website itself.
When the HTTP error 500 occurs, the web server will generate an internal error log, which will provide details of what caused the 500 error. Using these logs, the operators of the web server should be able to analyse the cause of the error and fix the internal server error.
How do you fix Internal Server Error 500?
The HTTP 500 error occurs on the web server and therefore this is usually resolved by fixes to it. It is not a web browser error. It is up to the operators of the web server to locate and analyse the errors within these logs, so that the exact cause of the internal server error can be established and fixed.
In some cases the cause of the HTTP 500 internal server error can be due to cached versions of the web site's code within the browser. This can sometimes causing an unexpected condition on the web server. For this reason, it is worth clearing the cached files within the web browser for the site reporting the HTTP error 500.
If you're the owner of the website, the first thing you should do when you encounter an HTTP error 500 is check the web server error logs.
For example in the Apache2 web server a typical error log location would be in
Typically the file will be called
error.log but it might be different if the web server has been configured with a different log file format.
For Internet Information Services (IIS) the default location for the log files are in
Do you need help with Fixing HTTP Error 500?
Our web site monitoring service monitors your site for HTTP errors such as 500. Please contact us (email preferred) whenever you encounter a HTTP 500 error on your CheckUpDown account. We can the liaise with your ISP and the vendor of the web server software so they can trace the exact reason for the 500 internal server error and help resolve it.
IIS Specific HTTP 500 Errors
Microsoft's Internet Information Services (IIS) web server has more detailed error 500 messages:
|500||Internal server error.|
|500.0||Module or ISAPI error occurred.|
|500.11||Application is shutting down on the web server.|
|500.12||Application is busy restarting on the web server.|
|500.13||Web server is too busy.|
|500.15||Direct requests for Global.asax are not allowed.|
|500.19||Configuration data is invalid.|
|500.21||Module not recognized.|
|500.22||An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.|
|500.23||An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.|
|500.24||An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.|
|500.50||A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.|
|500.51||A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.|
|500.52||A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.|
|500.53||A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.|
|500.100||Internal ASP error.|
For more on IIS specific status codes see The HTTP status code in IIS 7.0, IIS 7.5, and IIS 8.0
Internal Server Error 500 in the HTTP cycle
Any client (e.g. your Web browser or our CheckUpDown robot) goes through the following cycle when it communicates with the Web server:
- Obtain an IP address from the IP name of the site (the site URL without the leading 'http://'). This lookup (conversion of IP name to IP address) is provided by domain name servers (DNSs).
- Open an IP socket connection to that IP address.
- Write an HTTP data stream through that socket.
- Receive an HTTP data stream back from the Web server in response. This data stream contains status codes whose values are determined by the HTTP protocol. Parse this data stream for status codes and other useful information.
HTTP error 500 occurs in the final step above when the client receives an HTTP status code that it recognises as "500".