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 HTTP 500 error. Also known as an Internal Server Error, the error 500 is reported by your browser but the problem is with the website itself.
When the HTTP 500 error occurs, the web server will generate an internal error log, which will provide details of what caused the problem. Using these logs, the operators of the web server should be able to analyse the cause of the 500 HTTP error and fix it.
How is a 500 Error Reported?
The following are a list of variations on how an HTTP 500 error is displayed to the user in the web page.
HTTP Error 500
HTTP Error 500 – Internal Server Error
HTTP Error 500.0 – Internal Server Error
500 Internal Server Error
500 Internal server error
500. That's an error
Internal Server Error
Temporary Error (500)
Advice when experiencing error 500 on a website
The 500 error may only be temporary. Press refresh on the browser to re-load the page (not advised if you are performing a transaction on a merchant site).
Come back later
The 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 500 HTTP Error within these logs, so that the exact cause of the 500 error can be established and fixed. Therefore, coming back to the website at a later date when the issue is fixed is the best course of action unless you are the owner of the site.
Clear Browser Cache
In some cases the cause of the HTTP 500 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 500 error.
Problem on a major site?
We monitor some large sites such as Google, Facebook and Twitter. If you are getting a 500 error with one of these sites you can check and confirm the status of these using the links below:
Fixing HTTP Error 500 on your site
Check .htaccess file
As the website owner, have you changed the .htaccess configuration recently? .htaccess files containing incorrect syntax are a common cause of HTTP Error 500. If you believe this may be the cause then rename the file and try loading the page again. If this resolves the issue then this confirms an issue with the .htaccess file. This should be checked, corrected and then put back into place.
Check file and folder permissions
500 errors can be caused by incorrect permissions on your files. These should be set to 755 (in UNIX/Linux -
chmod 775 [filename].
If you maintain the site and use a scripting or coding language (such as PHP) to dynamcally output content then errors in the syntax of the language can be a cause of the 500 error. Check to see if the page in question has been modified recently and verify that the syntax is correct.
If you're the owner of the website, the first thing you should do when you encounter an error 500 is to 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
Contact ISP or Hosting Provider
If you are the owner but do not have access to the web server's logs and/or filesystem then you should contact your ISP/hosting provider for details of the logs so that you can investigate. Some ISPs/Hosting Providers such as IONOS provide access to tools via their "Control Panels" that allow the logs to be interrogated. It may be that your ISP/Hosting Provider might be the cause of the issue (e.g. upgrading server software etc) and may be aware of the problem causing the error 500 issue with your site and therefore resovle it for you or can help you with it. It is alsow worth checking out any help pages and articles on the subject written by the ISP/Hosting provider themselves as they may contain specific advice to the problem.
Contact CMS provider
If you are experiencing a 500 error on your Wordpress or other content management system then you can contact them for assistance. They should also have some help pages on their website which might be of help - e.g. Wordpress have support forums where you might find an answer to a similar problem.
Help with Fixing error 500
Our web site monitoring service monitors your site for HTTP errors such as HTTP 500. Please contact us (email preferred) whenever you encounter an HTTP error 500 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 error 500 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
HTTP 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.
An error 500 occurs in the final step above when the client receives an HTTP status code that it recognises as "500".