HTTP Error 500 - Internal Server Error Explained

What is Error 500?

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
  • Error 500
  • Temporary Error (500)
Note - sometimes the browser may just display a blank page.

HTTP Error 500. Internal Server Error

Advice when experiencing error 500 on a website

Try again

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].

Coding/scripting errors

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.

Investigate Logs

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 /var/log/apache2. 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 %SystemDrive%\inetpub\logs\LogFiles

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:

500Internal server error.
500.0Module or ISAPI error occurred.
500.11Application is shutting down on the web server.
500.12Application is busy restarting on the web server.
500.13Web server is too busy.
500.15Direct requests for Global.asax are not allowed.
500.19Configuration data is invalid.
500.21Module not recognized.
500.22An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
500.23An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
500.24An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
500.50A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.
500.51A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.
500.52A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
500.53A 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.100Internal 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:

  1. 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).
  2. Open an IP socket connection to that IP address.
  3. Write an HTTP data stream through that socket.
  4. 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".

403 - Forbidden

The Web server thinks that the HTTP data stream sent by the web browser was correct, but access to the resource identified by the URL is forbidden.


404 - Not Found
Not Found

The Web server (running the Web site) thinks that the HTTP data stream sent by your web browser was correct, but simply can not provide the access to the resource specified by your URL.